1)限制递归调用深度的方法:
i)定义类COjbectCounter,其包含静态成员m_iCount;
ii)在COjbectCounter构造函数中让计数器m_iCount+1,析构函数中让计数器m_iCount-1;
iii)检测COjbectCounter中的m_iCount是否超过深度上限;
2)消除编译时的函数地址为空的warnning
#pragma GCC diagnostic ignored "-Waddress"
#pragma GCC diagnostic ignored "-Wnonnull"