小编Han*_*ank的帖子

初始化派生类的成员(C++)

初始化从其基类中转换的派生类的首选方法是什么?

请考虑以下情形:

    class A{
        public:
           A();
           ~A();
    }

    class B : public A{
        public:
           B() {m_b = 0.0;};
           ~B();
           float GetValue(){return m_b;};

        private: 
           float m_b;
    }


    A* a = new A;
    B* b = static_cast<B*>(a);

    float val = b->GetValue();   // This was never initialized because it was not constructed
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案是手动调用Initialize()函数,该函数将像构造函数那样执行必要的初始化.

虽然看起来很草率,但必须有一个更好/更清洁的方法.

非常感谢任何帮助和指导!

c++ constructor derived-class initializing

-1
推荐指数
1
解决办法
285
查看次数

标签 统计

c++ ×1

constructor ×1

derived-class ×1

initializing ×1