我似乎无法编译以下代码。如果我用char *替换所有字符串引用,它将编译并运行正常。我使用的是Visual Studio 2013.我错过了什么?我花了几个小时试图解决这个问题。
这些是一些编译错误: 错误1错误C2146:语法错误:缺少&#39 ;;'在标识符' s之前c:\ users \ visual studio 2013 \ projects \ class struct test \ class struct test \ class struct test.cpp 16 1 Class Struct Test
错误2错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int c:\ users \ visual studio 2013 \ projects \ class struct test \ class struct test \ class struct test.cpp 16 1 Class Struct Test
提前致谢。
#include "stdafx.h"
#include <iostream>
#include <string>
class test
{
public:
struct structType
{
int int1;
int int2;
string ss;
};
public:
int getint1();
int getint2();
string getString();
test()
{
privateVar.int1 = 5;
privateVar.int2 = 6;
privateVar.ss = "This is test string 1";
};
~test(){};
private:
structType privateVar;
};
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
test t;
cout << "Int 1: " << t.getint1() << endl;
cout << "Int 2: " << t.getint2() << endl;
cout << "String: " << t.getString() << endl;
};
int test::getint1() { return privateVar.int1;}
int test::getint2() { return privateVar.int2;}
string test::getString(){ return privateVar.ss; }
答案 0 :(得分:3)
您可能打算使用标准库字符串。它位于std
命名空间中。试试这个:
struct structType {
int int1;
int int2;
std::string ss;
};
答案 1 :(得分:-1)
您可以在块的开头使用using namespace std
。