语境
我书面方式调试类Qt中的一个项目,我想知道在哪个班,我所以现在我写:获取类的名字调用函数
MyClass::function1()
{
DEBUG_IN("[MyClass] Enters function1()")
....do something
DEBUG_OUT("[MyClass] Exits function1()");
}
编辑:DEBUG_IN()
和DEBUG_OUT()
是全局函数。他们不是MyClass类的一部分
问题
是否有可能获得其中DEBUG()被调用的类的名字吗?
(何DEBUG()被调用函数的bame?)
,这样我可以只是做:
MyClass::function1()
{
DEBUG_IN("function1()")
....do something
DEBUG_OUT("function1()");
}
和
DEBUG_IN(QString text)
{
qDebug() << qPrintable("[")
<< qPrintable(getClassName())
<< qPrintable("] Enters ")
<< qPrintable(text);
}
THX很多
试试看http://stackoverflow.com/questions/1666802/is-there-a-class-macro-in-c。如果您不熟悉宏观扩展如何工作,我可以尝试为您澄清。 – Qartar
@qartar:您给了我与其他两个命题相同的答案,但是我的DEBUG()不是MyClass的一部分(我刚刚编辑了这个问题,因为它不够清楚) – ochurlaud
您可以将扩展的宏直接传递给功能。例如'DEBUG_IN(__ PRETTY_FUNCTION__,...)' – Qartar