我的类有函数指针公共实例成员变量。(_ 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;
};
答案 0 :(得分:4)
你没有有在构造函数中初始化它,但你必须在使用变量之前初始化它。否则,您的程序将具有未定义的行为。