21xrx.com
2024-11-05 17:26:20 Tuesday
登录
文章检索 我的文章 写文章
C++错误C2679解决方法
2023-07-10 20:24:13 深夜i     --     --
C++ 错误 解决方法 C2679

C++是一种非常常用的编程语言,但是在使用它编写程序的过程中,难免会遇到一些错误。其中,错误C2679是比较常见的一种错误。出现这个错误的原因主要是因为类型不兼容。本文将为大家介绍如何解决C++错误C2679。

错误C2679的原因是因为在使用了相同的模板参数后,类型不兼容。例如,下面这段代码就可能出现错误C2679:


template <class T> 

class CTest 

public: 

  void SetValue(T tValue) {} 

}; 

class CTest1 

 

void Func() 

  CTest<CTest1*> tObject; 

  tObject.SetValue(NULL); 

在这个例子中,类型CTest1和指针类型CTest1 *是不同的类型,所以在使用NULL时会出现类型不兼容的错误。要解决这个问题,我们需要将两个类型名保持一致,即CTest1*改为CTest1。

另外,在使用STL容器时,也有可能会遇到C2679错误。例如,使用set容器时:


#include <set> 

int main() 

  std::set<const char*> s; 

  s.insert("Hello World!"); 

上述代码中的C2679错误是由于插入了一个const char*类型的字符串而导致的,这与我们set容器中的const char*类型不兼容。为了解决这个问题,我们需要将const char*改为string:


std::set<string> s; 

s.insert("Hello World!"); 

总结一下,C++错误C2679的解决方法就是在使用模板参数和容器时,保持类型的兼容性。避免出现类型不匹配的问题。在日常的编程过程中,更加注意数据类型的选择和使用,能够避免许多常见的编程错误,提高编程效率和代码质量。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复