Здравствуйте, подскажите пожалуйста, как получить имя объекта класса, с которым сейчас работаю?
Демонстрация вопроса в коде:
Очень не хватает для упрощения отладки кода, чтобы понимать, в каком именно из созданных объектов происходит ошибка
Никак!
Здравствуйте, подскажите пожалуйста, как получить имя объекта класса, с которым сейчас работаю?
Демонстрация вопроса в коде:
Очень не хватает для упрощения отладки кода, чтобы понимать, в каком именно из созданных объектов происходит ошибка
Самостоятельно:
class myClass { protected: string m; public: myClass(string n){ m=n; } void PrintObjectName() { Print("How do I know this object name ",m); } }; void OnStart() { myClass a("a"), b("b"), c("c"); a.PrintObjectName(); b.PrintObjectName(); c.PrintObjectName(); }
А если только для отладки нужно как-то различать объекты, вот так можно:
Print("How do I know this object name ",GetPointer(this));
Для вывода информации всегда используйте
PrintFormat("%s / %s", __FUNCTION__, tratata);
Здравствуйте, подскажите пожалуйста, как получить имя объекта класса, с которым сейчас работаю?
Демонстрация вопроса в коде:
Очень не хватает для упрощения отладки кода, чтобы понимать, в каком именно из созданных объектов происходит ошибка
Если требуется получить имя класса, то через typename(this):
class myClass { public: void PrintObjectName() { Print("How do I know this object name ",typename(this)); } }; void OnStart() { myClass a, b, c; a.PrintObjectName(); b.PrintObjectName(); c.PrintObjectName(); }
Создавайте имя объекта через макрос.
class DebugClass { private: const string Name; public: DebugClass( const string &sStr ) : Name(sStr) { } string MyName( void ) const { return(this.Name); } }; class MyClass : public DebugClass { public: MyClass( const string sStr = NULL ) : DebugClass(sStr) { } }; #define DEFINE(A, B) A B(#B) void OnStart() { DEFINE(MyClass, a); DEFINE(MyClass, b); DEFINE(MyClass, c); Print(a.MyName()); Print(b.MyName()); Print(c.MyName()); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, подскажите пожалуйста, как получить имя объекта класса, с которым сейчас работаю?
Демонстрация вопроса в коде:
Очень не хватает для упрощения отладки кода, чтобы понимать, в каком именно из созданных объектов происходит ошибка