错误:请求 中的成员属于非类类型

Error: Request for member ' ' in ' ' , which is of non-class type ' '

本文关键字:属于 类型 成员 请求 错误      更新时间:2023-10-16

我在识别此代码的问题时遇到问题...

这是类声明:

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;

我在运行代码时收到他的错误:

错误:在"家庭"中请求成员"生日",该成员类型为非类类型"人类型 [20]"|

错误:请求"家庭"中的成员"姓名",该名称属于非类类型"人员类型 [20]"|

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

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

似乎对此没有任何帮助...

请帮忙?

family.birthday[5]应该family[5].birthday 。您正在获取family数组的第 5 个索引 ( family[5] (,然后访问其birthday字段。

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

但请注意,namebirthday 都是私有成员,因此就目前而言,此代码仍将引发错误。您需要将它们设为公共成员,或者创建访问器/突变器并改为调用它们。(谢谢@Borgleader!