c++ - 错误 C2011 : 'SelectorBox' : 'class' type redefinition

标签 c++ visual-studio-2013 compiler-errors

我有以下代码的问题:

 #ifndef HEADER_H_

    class SelectorBox{
    public:
        string selectorName;  
        map < string, string > attributeMap;
        void setSelectorName(string name);   
        void setAttribute(string key, string value); 
    };
    string trimTheString(string str); //trimming a string
    #endif

//include libraries 
#include "Header.h"
using namespace std;
int main()
{
    vector <SelectorBox> vectorSelectBox;
    SelectorBox *selectorBox;

//code
return 0;
}

#include "Header.h"
#include "main.cpp"

void SelectorBox::setSelectorName(string name)   //setter
{
    name = trimTheString(name);
    selectorName = name;
}

void SelectorBox::setAttribute(string key, string value)  //setter
{
    key = trimTheString(key);
    value = trimTheString(value);
    attributeMap[key] = value;
}

当我编译一个程序时,它显示了很多错误(特别是错误 4430 和 2061),但我认为主要错误是: 错误 C2011:“SelectorBox”:“类”类型重新定义。

最佳答案

您必须定义 HEADER_H_。您错过了下面代码的第二行。

#ifndef HEADER_H_
#define HEADER_H_
...
#endif

关于c++ - 错误 C2011 : 'SelectorBox' : 'class' type redefinition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47260796/

相关文章:

c++ - OpenCV- 无法访问 CV_8SC1 的像素值

c++ - LNK4221 : operator<< overload not exported in static library

C++:创建线程的问题; error C2672: 'std::invoke': 找不到匹配的重载函数

android - 尝试将 iOS 应用程序移植到 Android 时出错

java - 意外类型错误 5

c++ - 允许通过指向方法的成员参数的指针指向的成员类型的模板参数推导

c++ - MSXML 内存泄漏

c++ - 如何将函数指针作为 lpParameter 传递给 CreateThread?

c++ - 尝试运行应用程序时缺少 Qt5Cored.dll

c# - 如何将预处理器符号与自定义构建配置一起使用?