C ++:修改其他类中一个类的私有属性

时间:2015-04-10 17:26:47

标签: c++ class

我想允许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);
}

1 个答案:

答案 0 :(得分:3)

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