首页 文章

错误C2679模板类

提问于
浏览
1

错误发生在默认构造函数中

Error: 错误C2679:二进制'=':找不到哪个运算符采用'int'类型的右侧操作数(或者没有可接受的转换)

代码:

#ifndef _SLOT_H
#define _SLOT_H
#include <string>
using namespace std;
template <class T>
class slot
{
private:
    string key;
    T data;
public:
    slot();
    slot(string str);
    slot(string str, T tempdata);
    slot(const slot &source);
    string getkey();
    T getdata();
    void setkey(string str);
    void setdata(T tempdata);
};

template<class T>
slot<T>::slot()
{
    key = "";
    data = NULL;
}

2 回答

  • 5

    问题可能是您使用 T 类型实例化模板,该类型不允许为其分配 int .

  • 0

    我想我知道这个问题的解决方案 . 继续把主要文件放在头文件中 . 应该注意您遇到的所有指针问题

    例如

    获取main中的所有代码并将其放在文件 Headers “Main.h”中,通过linux注释mount / dev / bin / boot将其链接到其他文件 . 这将导致文件在启动时链接 . 如果您有任何其他问题,请知道 . 此外,在您链接文件后,您可能需要重新启动它才能工作

    快乐编程!

相关问题