class test
{
private:
string *firstname;
public:
void setfname(const string fname[])
{
delete[] firstname;
firstname = new string[3];
for (int i = 0; i < 3; i++)
{
firstname[i] = fname[i];
}
}
string* getfname(const string fname[]) const
{
return firstname;
}
};
好了,我知道返回功能是错误的,因为它让我直接访问,如何设置功能,所以它不允许它。
这就是我要测试它的方式:
int main()
{
test t;
string narray[3] = { "Name1", "Name2", "Name3" };
t.setfname(narray);
cout << "\nAfter t.setfname(narray);"
<< "\nf.getfname(narray) follows: ";
cout << t.getfname(narray);
}
我知道getfname错了,我该如何解决?
答案 0 :(得分:0)
在最简单的情况下,只返回字符串的副本而不是指针:
string getfname(const string fname[]) const
{
return *firstname;
}
更好的是,存储一个字符串而不是指向它的指针:
class test
{
private:
string firstname;
...