C++ 如何LOG输出父类指针调用的是哪个子类的方法

项目不能debug调试,只能打LOG。其中有一个父类类型的指针调用虚函数_pFather->Start();我想用Log输出该指针指向哪个子类类型,也就是想确认调用的是哪... 项目不能debug调试,只能打LOG。
其中有一个父类类型的指针调用虚函数_pFather->Start();
我想用Log输出该指针指向哪个子类类型,也就是想确认调用的是哪个子类的Start()。
请问有没有什么好方法。
子类有好几十个,并且我不会在每个子类的方法中都加上Log日志吧!!!
展开
 我来答
ahcc08
推荐于2016-05-12 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51940
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部

你可以在子类的Start函数里加上Log日志


Log日志内容为 子类的类名::start


我上面说的方法是最好的,当然方法不止这一个。


你也可以直接判断父类的指针是指向哪一个子类的,不过要写很多判断

if(typeid(*_pFather)== typeid(D1))
{
// _pFather指向D1
}
else if(typeid(*_pFather)== typeid(D2))
{
// _pFather指向D2
}
else
{
// _pFather指向非D1,D2的其他对象
}
更多追问追答
追问
这方法还点和所有的子类做比较。你说的这两种方法我都想到了。

哎,就没有更简单一点的方法了嘛。
追答
没有了,目前就这两种方法了。
我们现在的项目就是用的是第一种,也是常用的一种。
希望采纳!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式