类中的结构内部的字符串

时间:2014-06-27 22:22:32

标签: c++ string class struct

我似乎无法编译以下代码。如果我用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; }

2 个答案:

答案 0 :(得分:3)

您可能打算使用标准库字符串。它位于std命名空间中。试试这个:

struct structType {
    int int1;
    int int2;
    std::string ss;
};

答案 1 :(得分:-1)

您可以在块的开头使用using namespace std