Loading

C++中类的成员指针初始化方法

背景

使用类调用其他子类时,常使用智能指针进行调用,例如:

class A
{
private:
    std::unique_ptr<B> Bptr;
}

调用XXptr->init()时发生错误

原因

报错的原始是忘记对智能指针进行初始化。

解决

  1. 可在构造函数中对智能指针进行初始化:
A::A()
{
    Bptr.reset(new B());
    Bptr->init();
}
  1. 在声明成员变量时进行初始化:
class A
{
private:
    std::unique_ptr<B> Bptr = std::make_unique<B>();
}
posted @ 2022-05-25 00:01  azureology  阅读(1090)  评论(0)    收藏  举报