函数指针默认是否为NULL?

时间:2010-10-06 22:56:14

标签: c++

在下面的类中,这是否意味着onPaintCallback为NULL,或者我必须在类构造函数中将其设为NULL?我想在给出有效指针之前开始检查NULL。

class AguiWidgetBase
{
    virtual void onPaint();
    void (*onPaintCallback)(AguiRectangle clientRect) = 0;
public:
    AguiWidgetBase(void);
    ~AguiWidgetBase(void);
};

1 个答案:

答案 0 :(得分:6)

你拥有的是不合法的。你必须在构造函数中初始化它:

AguiWidgetBase::AguiWidgetBase() :
onPaintCallback(0)
{}

您可以使用boost::function<void(AguiRectangle)>,除了更灵活之外,还可以将其自身初始化为null。你可以检查它:

if (f)
    // ...