C++ C2146缺失;在VisualStudio2010中
当我尝试在VS2010中编译时,我遇到了以下错误。它还抱怨字符串未定义,这毫无意义,因为我清楚地包含了它。我理解这些错误的含义,但它们似乎没有任何意义:C++ C2146缺失;在VisualStudio2010中,c++,visual-studio,C++,Visual Studio,当我尝试在VS2010中编译时,我遇到了以下错误。它还抱怨字符串未定义,这毫无意义,因为我清楚地包含了它。我理解这些错误的含义,但它们似乎没有任何意义: 1>c:\users\jon\documents\visualstudio 2010\projects\project 2\project 2\userfactory.cpp(11):错误C2146:语法错误:缺少“;”在“职业”之前 1> c:\users\jon\documents\visual studio 2010\projects\p
1>c:\users\jon\documents\visualstudio 2010\projects\project 2\project 2\userfactory.cpp(11):错误C2146:语法错误:缺少“;”在“职业”之前
1> c:\users\jon\documents\visual studio 2010\projects\project 2\project 2\userfactory.cpp(11):错误C4430:缺少类型说明符-假定为int。注意:C++不支持默认int
1> c:\users\jon\documents\visual studio 2010\projects\project 2\project 2\userfactory.cpp(11):错误C4430:缺少类型说明符-假定为int。注意:C++不支持默认int
1> c:\users\jon\documents\VisualStudio2010\projects\project 2\project 2\userfactory.cpp(16):错误C2143:语法错误:缺少“;”在“之前,string是std名称空间的一部分,因此必须将其称为std::string。这同样适用于map。string是std名称空间的一部分,因此必须将其称为std::string。这同样适用于map。这是否应该是std::string profession?这是否应该是std::string profession?或者您可以使用使用名称空间std使用std::string的code>或
只将字符串
导入默认名称空间。@Fabian:这很重要。或者您可以使用使用名称空间std使用std::string的code>或
只将字符串
导入默认名称空间。@Fabian:这很重要。
#include "objbase.h" //I found this recommendation while googling, but had the errors prior to adding this.
#include <string>
#include <map>
#include <utility>
class UserFactory {
public:
class User {
char gender;
int id;
string profession;// line 11
int zip;
friend class UserFactory;
};
private:
map<int,User*>* map;
public:
UserFactory() : map(new map<int,User*>()) { }
virtual ~UserFactory(void);
void process(string s) {
//user id | age | gender | occupation | zip code
}
};