我无法通过此代码识别问题...
这是类声明:
class PersonType{
public:
PersonType();
PersonType(string n, int id, string bd);
private:
string name;
int ID;
string birthday;};
这就是问题所在:
PersonType family[20], newBaby("Anny Dube", 20180912, "2 Sept");
//family initialized here
for (int i = 0; i < 20; i++)
if (family.birthday[5] == newBaby.birthday)
cout << family.name[5] << " share a birthday with " << newBaby.name;
运行代码时出现错误:
错误:请求'family'中的成员'birthday',这是非类型'PersonType [20]'|
错误:请求'family'中的成员'name',这是非类类型'PersonType [20]'|
我知道姓名,身份证和生日是私密的是一个问题,但我知道如何解决这个问题。即使我将变量设为公共或使用访问器方法,我仍然留下这两个错误...
我已经阅读了一大堆与此问题相关的问题,但我能找到的一切都是关于指针,拼写错误的变量等。
似乎没有任何帮助......
请帮帮忙?
答案 0 :(得分:0)
family.birthday[5]
应为family[5].birthday
。您获得family
数组的第5个索引(family[5]
),然后访问其birthday
字段。
family.name[5]
=&gt;也是如此。 family[5].name
。
但请注意,name
和birthday
都是私有成员,因此现在这个代码仍会抛出错误。您需要将它们设为公共成员或创建访问者/变更器并改为调用它们。 (感谢@Borgleader!)