C++ 传递类的指针

C++ 传递类的指针,c++,C++,假设我有Class1和Class2,我想要一个Class1的浅拷贝构造函数。Class1有一个成员变量,它是指向Class2实例的指针。此外,我必须能够更改Class2 ptr所指向的 在头文件中: class Class1 { Class2* ptr; ... } 在源文件中: Class1::Class1() { ptr = new Class2(); } ...... Class2* Class1::Exchange(Class2* newClass2) {

假设我有Class1和Class2,我想要一个Class1的浅拷贝构造函数。Class1有一个成员变量,它是指向Class2实例的指针。此外,我必须能够更改Class2 ptr所指向的

在头文件中:

class Class1
{
    Class2* ptr;
    ...
}
在源文件中:

Class1::Class1()
{
    ptr = new Class2();
}

......

Class2* Class1::Exchange(Class2* newClass2)
{
    Class2* temp;
    ptr = newClass2;
    return temp;
}

......
现在说

Class1 original;
Class1 shallowCopy(original);

Class2* newClass2 = new Class2();
Class2* oldClass2;

oldClass2 = orignal.Exchange(newClass2);
delete oldClass2;

现在我想将original.ptr与shallowCopy.ptr相关联,当我实现shallowCopy构造函数时,如何确保这两个指针始终指向同一个Class2?我的意思是,在上面的类中,旧的类2被删除了,所以shallowCopy的ptr没有指向任何东西。如果我不删除oldClass2,则原始和浅拷贝的PTR将指向不同的Class2实例

您可能希望看到使用引用计数来共享指针,尤其是来自Boost的共享\u ptr类。

您可能希望看到使用引用计数来共享指针,尤其是来自Boost的共享\u ptr类