C++:修改一个类在另一个类中的私有属性

C++: modifying private attribute of one class in other class

本文关键字:另一个 属性 一个 修改 C++      更新时间:2023-10-16

我想允许类 B 的对象将其 ID 发送到 A 的对象。因此,可以将 A 的 ID 设置为 B 的 ID。我的问题是,在"面向对象设计"中,正如我在下面所写的那样,在 B 类中更改 A 的 ID 内容是否是一个"好主意"?

class A
{
private:
    string ID;
public:
    A()
    {
        ID = "empty";
    }
    void set_ID(string id)
    {
        ID = id;
    }
};
class B
{
private:
    string B_ID;
public:
    B(string id)
    {
        B_ID = id;
    }
    void put_request(A& a)
    {
        a.set_ID(B_ID);
    }
};
int main()
{
    A a;
    B b("my ID");
    b.put_request(a);
}

这正是封装的工作原理。它是面向对象设计范式的支柱之一。它指的是将数据保存在私有字段中,并允许通过其他一些(可能是setter和getter)方法对其进行修改和检索。