我有A和B两班。
在A类中,我在B上有一个称为Bptr的指针。
我在A的构造函数中为Bptr分配内存,并在A的析构函数中释放Bptr的内存。
class B {
//whatever
public:
B(int,int);
}
class A {
private:
B * Bptr;
public:
A();
}
A::A(){
Bptr = new B(2,5);
}
A::~A(){
delete Bptr;
}
如何将Boost集成到代码中并使用智能指针:boost :: shared_ptr?我的代码看起来如何?
非常感谢!
最佳答案
class B {
//whatever
public:
B(int,int);
}
class A {
private:
boost::shared_ptr<B> Bptr;
public:
A();
}
A::A(){
Bptr = boost::make_shared<B>(2,5);
}
A::~A(){
// Bptr automatically deleted if this is the only boost::shared_ptr pointing to it
}
尽管您可以简单地使用
new B(2,5)
代替boost::make_shared<B>
,但是后者是异常安全的。关于c++ - 在这种情况下,如何使用boost的shared_ptr?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18878191/