传递一个类的指针

时间:2010-05-22 00:47:04

标签: c++

假设我有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,当我实现浅拷贝构造函数时,如何确保这两个指针总是指向同一个Class2?我的意思是在上面的类中,oldClass2被删除,所以shallowCopy的ptr指向什么都没有。如果我不删除oldClass2,原始和shallowCopy的ptrs指向不同的Class2实例。

1 个答案:

答案 0 :(得分:3)

您可能希望使用引用计数来共享指针,特别是Boost中的shared_ptr类。