如何在类中返回私有成员字符串的值

时间:2014-04-02 17:38:40

标签: c++ getter

我希望在name中获取私有字符串sampleclass的值。

#include <iostream>
#include <string>

using namespace std;

class sampleclass {
public:
    int getname(){ //this is my attempted getter
    string x = name;
    }
private:
    string name= "lance"; //this is the private I want returned by value

};

int main(){    
    sampleclass object;
    cout << object.getname();
}

2 个答案:

答案 0 :(得分:4)

您需要在getname()函数中返回一个字符串,因为您的name变量是一个字符串

string getname() {
    return name;
}

通过这样做,您将std::string的新实例作为rvalue结果,然后输出到主函数的屏幕。

另外一个想法,与你的问题没有关系:对于像这样的小程序全局使用命名空间没有问题,但你应该try to not get used to it,因为它可能导致更大的不同命名空间内的名称冲突项目

答案 1 :(得分:0)

#include <iostream>
#include <string>

using namespace std;

class sampleclass{
public:
    sampleclass() : name("lance") { }
    string getname(){ // return a string (not an int)
       return name;
    }
private:
    string name;

};
int main(){

    sampleclass object;
    cout << object.getname();

}

g++ test.cpp && ./a.out lance