我需要确保传递给我的构造函数的某个指针不是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
的正确方法是什么,最好是在构造时?
最佳答案
在构造函数中使用Q_ASSERT
是可以的。没有理由不是。它只是向输出打印一条消息。
关于c++ - 在构造函数中使用 Q_ASSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17113711/