H264AVCEncoderTest类,构造函数与析构函数都是private,因此不能在栈上实例化。不能直接声明对象,也不能直接用new和delete来操作,只能将new和delete放在公有函数里,即create和destroy里。
private: H264AVCEncoderTest(); virtual ~H264AVCEncoderTest();
类似于单件模式,提供了产生和自杀的函数接口:
static ErrVal create( H264AVCEncoderTest*& rpcH264AVCEncoderTest ); ErrVal destroy ();
create函数的实现。类成员中没有声明H264AVCEncoderTest的指针,但是create函数的参数采用了指针的引用。但是函数实现时,却又没有先检验指针是否为空,不知用意何在。
ErrVal H264AVCEncoderTest::create( H264AVCEncoderTest*& rpcH264AVCEncoderTest ) { rpcH264AVCEncoderTest = new H264AVCEncoderTest; ROT( NULL == rpcH264AVCEncoderTest ); return Err::m_nOK;
在main函数中,调用的顺序是create-->init-->go-->destroy。到处都是宏,RNOK,RNOKS,RERR。。找到一篇博客: