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

C++ do I have to initialize public instance member variable in constructor?

我的class有函数指针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;
    };

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