Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
tokar_1
1 / 1 / 0
Регистрация: 11.04.2012
Сообщений: 36
#1

Имя экземпляра объекта внутри класса на С++ - C++

31.08.2013, 19:45. Просмотров 1443. Ответов 26
Метки нет (Все метки)

Добрый день.

Подскажите, пожалуйста, как узнать имя экземпляра объекта внутри класса на С++ ?
В частности, мне надо имя экземпляра объекта печатать на экран.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2013, 19:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Имя экземпляра объекта внутри класса на С++ (C++):

Видимость экземпляра класса внутри класса - C++
Здравствуйте! Пытаюсь вывести openCV видео в QT виджете. На данный момент в слоте обновления картинки инициализирую класс cv::VideoCapture...

Как узнать имя экземпляра класса? - C++
у меня есть класс polynom, я создаю его экземпляры polynom a(5), b(5), c(5); как мне программно узнать имя экземпляра класса?

Создание нового экземпляра дочернего класса из экземпляра базового - C++
Всем привет! Извиняюсь, если вопрос глупый, но что-то не смог найти конкретный ответ на него... У меня есть несколько классов: все они...

При создании экземпляра класса, создается 2 экземпляра вместо 1 - C++
Подсчет экземпляров ведется с помощью статического члена num_dogs, который во всех трех конструкторах (1. по умолчанию, 2. со всеми...

Сложение экземпляра базового класса и экземпляра наследника - C++
Добрый вечер! Моя задача - сложить экземпляр базового класса и наследника. Нужно сделать так, чтобы результат сложения "знал"...

Удаление экземпляра класса в функции самого класса (Ошибка при отладке) - C++
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и количество этих указателей refcounter ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
tokar_1
1 / 1 / 0
Регистрация: 11.04.2012
Сообщений: 36
31.08.2013, 21:43  [ТС] #16
Все же если кто знает как реализовать через *this в классе или через <typeinfo.h>, то пишите
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
31.08.2013, 21:57 #17
Цитата Сообщение от tokar_1 Посмотреть сообщение
Все же если кто знает как реализовать через *this в классе
никак
this это адрес в памяти где лежит твой объект
никаких имен в памяти нет
откомпилируй любую программу и посмотри дизасемблером, имен не увидишь
и ты так и не ответил зачем выводить на экран?
отладочная информация?
лабораторная работа?
на кой черт пользователю видеть имена переменных?
это примерно тоже самое как вывести имена регистров в которые записываются значения
может твоя задача решается по другому объясни зачем выводить на экран?
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
31.08.2013, 22:54 #18
Цитата Сообщение от tokar_1 Посмотреть сообщение
Все же если кто знает как реализовать через *this в классе или через <typeinfo.h>, то пишите
Можно узнать имя класса, но не имя объекта.
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
31.08.2013, 23:10 #19
После компиляции никаких "имен объектов" уже нет, даже в языками с интроспекцией типа C# и Java имена не имеют значения и узнать их на этапе исполнения нельзя.
tokar_1
1 / 1 / 0
Регистрация: 11.04.2012
Сообщений: 36
01.09.2013, 02:02  [ТС] #20
Цитата Сообщение от ValeryS Посмотреть сообщение
и ты так и не ответил зачем выводить на экран?
отладочная информация?
лабораторная работа?
на кой черт пользователю видеть имена переменных?
Хотел в программе выводить имена объектов, к объекту привязаны различные методы, их значения тоже отображаю на экране. Не хотелось бы руками вбивать через cout<<" имя_объекта ".
Само отображения имен объектов - это у меня просто информация.
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
01.09.2013, 02:08 #21
Можно, кстати, для исключений использовать - всегда знаешь, в каком объекте оно возникло.
Кстати встречный вопрос - можно ли с помощью препроцессора подставлять имена функций? Типа макросов __LINE__ и __FILE__.
Croessmah
Модератор
Эксперт CЭксперт С++
13135 / 7398 / 828
Регистрация: 27.09.2012
Сообщений: 18,234
Записей в блоге: 3
Завершенные тесты: 1
01.09.2013, 03:16 #22
Цитата Сообщение от tokar_1 Посмотреть сообщение
Не хотелось бы руками вбивать
C++
1
2
MyObject * p1 = new MyObject  ;
MyObject  * p2 = new MyObject  [ 100500 ] ;
какие имена у объектов?
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
01.09.2013, 08:35 #23
Цитата Сообщение от tokar_1 Посмотреть сообщение
Хотел в программе выводить имена объектов,
не понял зачем?
в учебных целях?
для отладки?
или потому что это круто? есть программы которые печатают сами себя, может тебе их надо?
Цитата Сообщение от tokar_1 Посмотреть сообщение
к объекту привязаны различные методы,
к объекту методы не привязаны,метод это функция класса, а вызываются они или нет дело программиста
C++
1
2
int a,b;
int c=a+b;
ты же не можешь сказать что "+" привязан к a или к b

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
какие имена у объектов?
а иногда и объектов не будет
например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class A
{
public:
 int a;
}
.........
 
int MyFnc()
{
 A b;
 b.a=9;
return a.b;
}
компилятор с большой вероятностью превратит это в
C++
1
2
3
4
int MyFnc()
{
return 9;
}
или вообще выбросит функцию
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
01.09.2013, 12:55 #24
Цитата Сообщение от iRomul Посмотреть сообщение
Можно, кстати, для исключений использовать - всегда знаешь, в каком объекте оно возникло.
Кстати встречный вопрос - можно ли с помощью препроцессора подставлять имена функций? Типа макросов __LINE__ и __FILE__.
__FUNCTION__
__PRETTY_FUNCTION__(может быть непереносимо).
tokar_1
1 / 1 / 0
Регистрация: 11.04.2012
Сообщений: 36
01.09.2013, 18:24  [ТС] #25
Цитата Сообщение от ValeryS Посмотреть сообщение
к объекту методы не привязаны,метод это функция класса, а вызываются они или нет дело программиста
Согласен, не верно написал. Но смысл думаю понял народ, что если объект имеет тип какого-либо класса, то он можед вызывать методы этого класса.

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
не понял зачем?
в учебных целях?
для отладки?
или потому что это круто? есть программы которые печатают сами себя, может тебе их надо?
В личных целях
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
02.09.2013, 13:05 #26
Цитата Сообщение от tokar_1 Посмотреть сообщение
В личных целях
Тогда нельзя. Точка.
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,056
Завершенные тесты: 1
02.09.2013, 13:51 #27
Цитата Сообщение от ValeryS Посмотреть сообщение
Сообщение от tokar_1
Хотел в программе выводить имена объектов

это уже надо копать в сторону Objective-C, либо наследовать все что можно от класса "Named" который содержит имя и задавать в конструкторах имена вручную
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2013, 13:51
Привет! Вот еще темы с ответами:

Явное создание экземпляра класса и явная специализация шаблона класса - C++
Всем добрый день! Не могу разобраться - эти две технологии дают один и тот же результат? В каких случаях применять одно и другое?...

Передача свойства одного экземпляра класса другому экземпляру класса - C++
#include &lt;tchar.h&gt; class A { public: A(); int aVar; }; class B : public A

Как построить экземпляр дочернего класса на основе готового экземпляра базового класса? - C++
Если уже есть готовый объект базового класса. Могу я построить экземпляр дочернего на его основе, (напр., получив такой базовый объект...

Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами - C++
Привести пример класса с конструктором и деструктором, созданием экземпляра класса с помощью конструктора с параметрами.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.09.2013, 13:51
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru