C ++我是否必须在构造函数中初始化公共实例成员变量?

时间:2017-04-03 03:00:32

标签: c++ initialization member public

我的类有函数指针公共实例成员变量。(_ base_func_ptr) 我是否必须初始化' _base_func_ptr'在构造函数? 或者只是跳过初始化?

    class base_cls {
    public:
    #ifdef WHICH_ONE_IS_CORRECT

        base_cls():_base_func_ptr(nullptr), _some1(0), _some2(0) {}

    #else ifdef INITIALIZE_ORDER_IS_REVERSE

        base_cls():_some1(0), _some2(0), _base_func_ptr(nullptr) {}

    #else ifdef JUST_SKIP_INITIALIZE_PUBLIC_MEMBER

        base_cls():_some1(0), _some2(0){}

    #endif 

        void (*_base_func_ptr)(void);
    private:
        int _some1;
        int _some2;
    };

1 个答案:

答案 0 :(得分:4)

你没有在构造函数中初始化它,但你必须在使用变量之前初始化它。否则,您的程序将具有未定义的行为。