Я сочинительство класс отладки в Qt для проекта, и я хочу знать, в каком классе я так что теперь я пишу:Получить имя класса вызова функции
MyClass::function1()
{
DEBUG_IN("[MyClass] Enters function1()")
....do something
DEBUG_OUT("[MyClass] Exits function1()");
}
EDIT:DEBUG_IN()
и DEBUG_OUT()
являются глобальными функциями. Они не являются частью класса MyClass
Вопрос
Можно ли получить имя класса, в котором называется DEBUG()?
(и БАМЭ функции, где DEBUG() называется?)
, так что я мог бы просто сделать:
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