错误:请求成员''in'',这是非类型''

问题描述 投票:0回答:1

我无法通过此代码识别问题...

这是类声明:

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]'|

我知道名字,身份证和生日是私密的是一个问题,但我知道如何解决这个问题。即使我将变量公开或使用访问器方法,我仍然留下这两个错误...

我已经阅读了一大堆与此问题相关的问题,但我能找到的一切都是关于指针,拼写错误的变量等。

这似乎没有任何帮助...

请帮忙?

c++ function class
1个回答
0
投票

family.birthday[5]应该是family[5].birthday。你得到了family阵列的第五个索引(family[5])然后访问它的birthday字段。

family.name[5] => family[5].name也是如此。

但请注意,namebirthday都是私有成员,因此现在这个代码仍会抛出错误。您需要将它们设为公共成员或创建访问者/变更器并改为调用它们。 (感谢@Borgleader!)

© www.soinside.com 2019 - 2024. All rights reserved.