如何将一个类的对象复制到另一个类中

How do i copy an object of a class in another class

本文关键字:对象 复制 另一个 一个      更新时间:2023-10-16

我有类A和类B,我在类B中创建了对象类A。我的问题是如何使用教师复制在 B 类中复制对象类 A?

class B {
    A *obj;
    unsigned short room;
    unsigned short area;
public:
    B();
    B(const B&);
    ~B();
    void setRoom(unsigned short);
    void setArea(unsigned short);
    unsigned short getRoom() { return room; };
    unsigned short getArea() { return area; };
};

这是讲师副本:

B::B(const B&p)
{
    room = p.room;
    area = p.area;
    // A = ?!
}

另一个问题:如何在类 B 中设置和获取对象 A?

//void setObj(A*);?
// A* getObj():?

谢谢

如果A有一个复制构造函数,你可以只做:

B::B(const B& p)
{
    room = p.room;
    area = p.area;
    obj = new A(*(p.obj));
}

宁愿:

B::B(const B& p) : 
    obj(new A(*(p.obj))), room(p.room), area(p.area)
{ }

我希望你的析构函数~B();删除obj

B::~B()
{
    delete obj;
}
阅读三法则

,三法则变成了五法则与C++11?

How to set and get object A in class B?

使用以下格式设置对象。

void B::setAObj(A *aobj)
{
obj = aobj;
}

使用以下方法获取对象

A* B::getAobj()
{
return obj;
}