在下面的类中,这是否意味着onPaintCallback为NULL,或者我必须在类构造函数中将其设为NULL?我想在给出有效指针之前开始检查NULL。
class AguiWidgetBase
{
virtual void onPaint();
void (*onPaintCallback)(AguiRectangle clientRect) = 0;
public:
AguiWidgetBase(void);
~AguiWidgetBase(void);
};
答案 0 :(得分:6)
你拥有的是不合法的。你必须在构造函数中初始化它:
AguiWidgetBase::AguiWidgetBase() :
onPaintCallback(0)
{}
您可以使用boost::function<void(AguiRectangle)>
,除了更灵活之外,还可以将其自身初始化为null。你可以检查它:
if (f)
// ...