C++中类的成员指针初始化方法
背景
使用类调用其他子类时,常使用智能指针进行调用,例如:
class A
{
private:
std::unique_ptr<B> Bptr;
}
调用XXptr->init()
时发生错误
原因
报错的原始是忘记对智能指针进行初始化。
解决
- 可在构造函数中对智能指针进行初始化:
A::A()
{
Bptr.reset(new B());
Bptr->init();
}
- 在声明成员变量时进行初始化:
class A
{
private:
std::unique_ptr<B> Bptr = std::make_unique<B>();
}