如何将private char“n”从成员函数返回到main函数?
#include <iostream>
using namespace std;
class TEST
{
char n[10];
public:
char getname()
{
cout<<"what's your name?:";
cin.getline(n,10);
return n;
}
};
int main()
{ char name[10];
TEST obj;
name[10]=obj.getname();
cout<<"Name :"<<name;
}
答案 0 :(得分:0)
char
而不是char*
。
我建议你使用字符串而不是char数组。
#include <iostream>
using namespace std;
class TEST
{
char n[10];
public:
char* getname()
{
cout<<"what's your name?:";
cin.getline(n,10);
return n;
}
};
int main()
{
char* name;
TEST obj;
name = obj.getname();
cout<<"Name :"<<name;
}
答案 1 :(得分:0)
如何将私有字符“n”从成员函数返回到主函数?
您可以返回指向类中private
标签下的字符数组的第一个元素的指针。为此,您需要将getname
函数的函数定义更改为char *getname()
。
另外,我想指出你在main
函数中犯的一些错误。看看我的版本:
#include <iostream>
using namespace std;
class TEST
{
char n[10];
public:
char* getname()
{
cout<<"what's your name?:";
cin.getline(n,10);
return n;
}
};
int main()
{
TEST obj;
char *name = obj.getname();
cout<<"Name :"<<name;
}
但是将引用或指针返回给类的私有成员并不是一个好习惯。公开任何内部实现细节可能违反了封装。您可以定义将对您的私有数据成员执行所需操作的成员函数,而不是提供对类的私有数据成员的访问。
另外,请尽量避免使用using namespace
。