我需要确保传递给我的构造函数的某个指针不是NULL
. 通常我只是Q_ASSERT()
在函数的开头放一个这样的:
void Class::doStuff( Object *object )
{
Q_ASSERT( object );
// do stuff
}
但由于构造函数是一个特殊函数,我想知道这种技术是否符合规定。在这样的构造函数中使用 Q_ASSERT 有什么问题吗?
Class::Class( Object *object, QObject *parent = NULL )
:
QObject( parent ),
_object( object )
{
// make sure that object is not NULL
Q_ASSERT( object );
// do stuff that will dereference the pointer, hence it must not be NULL
if( object->hasSomething() )
// do stuff
}
NULL
如果这是不好的做法,那么最好在施工时检查的正确方法是什么?