Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2013, 23:29   #1
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию Можно ли из конструктора выводить на экран имя (название) обьекта, который этот самый конструктор вызывает? А из деструктора?

Можно ли из конструктора выводить на экран имя (название) обьекта, который этот самый конструктор вызывает? А из деструктора?
Подскажите пожалуста как!
Dimka-novitsek вне форума Ответить с цитированием
Старый 21.11.2013, 23:58   #2
nidaime
Пользователь
 
Регистрация: 28.11.2011
Сообщений: 26
По умолчанию

ну разве что в конструкторе написать
Код:
cout << "Constructor classNAME" << endl;
и в деструкторе
Код:
cout << "Destructor classNAME" << endl;
nidaime вне форума Ответить с цитированием
Старый 22.11.2013, 00:08   #3
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Не, вот меня интересует. Допустим я пррописываю в майне обьекты

Klass1 murtsik;
Klass1 barsik;

можно ли из конструктора вывести имя обьекта?

Или вот у меня есть какие-то this, тоже можно ли оприделить имена обьектов, на которые эти this указывают?
Dimka-novitsek вне форума Ответить с цитированием
Старый 22.11.2013, 00:24   #4
nidaime
Пользователь
 
Регистрация: 28.11.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Dimka-novitsek Посмотреть сообщение
Не, вот меня интересует. Допустим я пррописываю в майне обьекты

Klass1 murtsik;
Klass1 barsik;

можно ли из конструктора вывести имя обьекта?

Или вот у меня есть какие-то this, тоже можно ли оприделить имена обьектов, на которые эти this указывают?
можно имя класса

Код:
const char* name = typeid(*this).name();
nidaime вне форума Ответить с цитированием
Старый 22.11.2013, 00:29   #5
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Спасибо!!!
Dimka-novitsek вне форума Ответить с цитированием
Старый 22.11.2013, 00:34   #6
nidaime
Пользователь
 
Регистрация: 28.11.2011
Сообщений: 26
По умолчанию

А вот, можно и имя обьекта
Код:
virtual const char* get_name1(){
   return typeid(*this).name();
}
всьо то же, но чере виртуальну функцию а не через конструктор

Последний раз редактировалось nidaime; 22.11.2013 в 00:37.
nidaime вне форума Ответить с цитированием
Старый 22.11.2013, 12:52   #7
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Спасибо!!!!
Dimka-novitsek вне форума Ответить с цитированием
Старый 27.11.2013, 00:39   #8
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Пожалуста, обьясните как работает эта функция.
Dimka-novitsek вне форума Ответить с цитированием
Старый 27.11.2013, 00:48   #9
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Тупо вставил в конструктор- студия выдала апофигический список страниц на 600, чего-то--целевой обьект и т.п. а вот видно ключевое

1>d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(48): error C2575: get_name1: только функции-члены и базовые классы могут быть виртуальными
1>d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(48): error C2601: get_name1: недопустимые локальные определения функций
1> d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(48): эта строка содержит "{", которая пока не имеет парной
1>d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(49): error C2355: this: может указываться только в нестатических членах-функциях
1>d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(49): error C2228: выражение слева от ".name" должно представлять класс, структуру или объединение
1> Выход из команды с кодом "2".
Dimka-novitsek вне форума Ответить с цитированием
Старый 27.11.2013, 00:53   #10
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Да, пока пишет- класс коунтер. Из конструктора.
Dimka-novitsek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из конструктора копии вызвать другой конструктор? a.b Общие вопросы C/C++ 2 25.09.2013 11:58
Вставка объекта в map. Отрабатывают один конструктор и три деструктора theYozh Общие вопросы C/C++ 5 03.12.2012 00:15
Как изменит имя класса и конструктора krutoj-ivan Общие вопросы по Java, Java SE, Kotlin 2 08.07.2012 16:09
Вызов Конструктора при создании обьекта. Что произойдет.. imaginary C# (си шарп) 1 12.10.2011 08:19
Строка как имя обьекта WarHamster Общие вопросы Delphi 6 12.12.2010 20:40