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。。找到一篇博客:
本文深入解析H264AVCEncoderTest类如何通过单件模式实现对象的产生和销毁,特别关注了其构造函数和析构函数为private的情况下的内存管理策略。同时,分析了create和destroy函数的实现细节,以及在main函数中调用顺序的重要性,提供了一种理解复杂类实例化机制的方法。
468

被折叠的 条评论
为什么被折叠?



