首页 > 解决方案 > 如何编写类的私有属性?

问题描述

我正在研究一个包含另一个类的对象数组的类。但我不能这样做。这是我尝试使用的代码的简化版本。谁能帮我处理它?

为什么s不能访问自己的数据成员?

任何人都可以展示如何处理这些场景的整个概念吗?

PS - 仅使用 FRIEND(类或函数)关键字。不允许继承。

class Student{
private:
    int roll;
    char name1[15];
};

class Subject  {
private:
    Student s[10];
};

int main()
{
    Subject s1;
    s1.s[1].roll = 5; // trying to set roll of 1st student
    return 0;
}

我期待该值将被分配,但它有以下错误。为什么会这样?

错误:“学生主题::s [10]”是私人的
错误:“int Student::roll”是私有的
错误:“学生主题::s [10]”是私有的
错误:“int Student::roll”是私有的

标签: c++classoopfriend

解决方案


谁能帮助我如何使用它。为什么 s 不能访问它自己的数据成员。

它确实可以,但您看到的错误是 尝试访问private.SubjectStudentmain

main无法访问或private的成员。为了允许直接访问成员变量,您必须创建成员变量。另一种选择是添加与成员变量对应的访问器和修饰符函数。SubjectStudentmainpublicpublicprivate


推荐阅读