调用另一个函数的私有成员-数组和类型问题 我遇到了一个类型类数组的C++调用元素。 下面是我的代码示例 //village.h class village { public: class Human { public: void setGender(std::string g); std::string getGender(); private: std::string gender; }; class World { public: void join(Human c, int i); private: Human humanArray[20]; }; //village.cpp void village::World::join(Human c, int i) { humanArray[i] = c; cout << humanArray[i].gender << endl; cout << c.getGender() << endl; } //main.cpp village::Human h; village::World world h.setGender("Male"); world.join(c, 1); //village.h 阶级村 { 公众: 阶级人 { 公众: void setGender(标准::字符串g); std::string getGender(); 私人: std::字符串性别; }; 阶级世界 { 公众: 无效连接(人c,int i); 私人: 人形阵列[20]; }; //village.cpp void village::World::join(人类c,int i) { 人形数组[i]=c; cout

调用另一个函数的私有成员-数组和类型问题 我遇到了一个类型类数组的C++调用元素。 下面是我的代码示例 //village.h class village { public: class Human { public: void setGender(std::string g); std::string getGender(); private: std::string gender; }; class World { public: void join(Human c, int i); private: Human humanArray[20]; }; //village.cpp void village::World::join(Human c, int i) { humanArray[i] = c; cout << humanArray[i].gender << endl; cout << c.getGender() << endl; } //main.cpp village::Human h; village::World world h.setGender("Male"); world.join(c, 1); //village.h 阶级村 { 公众: 阶级人 { 公众: void setGender(标准::字符串g); std::string getGender(); 私人: std::字符串性别; }; 阶级世界 { 公众: 无效连接(人c,int i); 私人: 人形阵列[20]; }; //village.cpp void village::World::join(人类c,int i) { 人形数组[i]=c; cout,c++,arrays,class,private,C++,Arrays,Class,Private,您应该使用访问器方法getGender() cout您应该使用访问器方法getGender() 不能将其更改为 cout << humanArray[i].getGender() << endl; 不能将其更改为 cout << humanArray[i].getGender() << endl; cout问题是成员变量gender确实声明为私有,因此您无法从世界级访问它。当您说humanArray[i].gender时,您得到一个人,然后尝试

您应该使用访问器方法getGender()


cout您应该使用访问器方法getGender()

不能将其更改为

cout << humanArray[i].getGender() << endl;
不能将其更改为

cout << humanArray[i].getGender() << endl;

cout问题是成员变量
gender
确实声明为私有,因此您无法从世界级访问它。当您说
humanArray[i].gender
时,您得到一个人,然后尝试访问其gender成员(私有)。使用
humanArray[i].getGender()
相反。

问题是成员变量
gender
确实声明为私有,因此您无法从世界级访问它。当您说
humanArray[i]。gender
时,您会得到一个Human,然后尝试访问其gender成员(这是私有的)。使用
humanArray[i].getGender()
相反。

你知道“private”是什么意思,对吧?关键是它在课堂之外是不可访问的。你知道“private”是什么意思,对吧?关键是它在课堂之外是不可访问的。
cout << humanArray[i].getGender() << endl;