![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Возможно ли это в теории?
Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
Повторно, может конструктор ваш вовсе не конструктор ?
![]() К примеру, может можно сделать так : Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Спасибо, но нужен был именно вызов ctor.
Я добился этого так: Код:
![]() Последний раз редактировалось EUGY; 28.09.2010 в 01:48. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
вопрос, а что вообще нужно от вызова конструктора?
выполнение некоторых операторов из него ведь так? может стоит их вынести в отдельный метод? (а то ведь не очень как то получается) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Вообще мне это нужно для сброса private-членов класса в дефолт.
CLS() : x(0), y(0)... Вы правы, конечно можно сделать это отдельным методом, но "дизайн" класса будет не тот ![]() |
![]() |
![]() |
![]() |
#6 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2EUGY
ты не понимаешь смысла конструктора, если хочешь вызывать его напрямую. почитай страуструпа, например. видно, что ты сишник, переходящий на плюсы, но тут другие правила)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Просто любопытно, как рантайм C++ вызывает конструктор объекта класса.
Не думаю, что это против правил. Где увидеть нечто такое: Код:
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,821
|
![]()
Вам правильно советуют: неправильно это - вызывать конструктор ради сброса приватных членов. Напишите метод - reset, например.
Смысл конструктора и его вызова несколько иной, чем просто обнуление переменных. Код:
По теме: Конструктор почти нормальный член класса и его можно вызывать. Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
![]()
CLS cls; // вызывается конструктор (по сути структура кладется на стек и заполняются поля, если они есть)
..... // после его использования вызывается деструктор, который выталкивает его со стека, если в описании класса нет деструктора, он создается автоматически. return 0; |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
А не проще будет удалить ненужный объект и создать новый с нулевыми членами?
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вызов конструктора суперкласса | Golovastik | PHP | 1 | 04.07.2010 00:35 |
Вопрос про new и вызов конструктора | Gtx541 | Общие вопросы C/C++ | 5 | 20.05.2010 12:18 |
Параметр конструктора класса = объект этого класса | nazavrik | Общие вопросы C/C++ | 6 | 14.02.2010 13:48 |
Повторный вызов функций | Roman | Общие вопросы C/C++ | 1 | 10.06.2009 14:48 |
Повторный вызов функции из dll | Smertnik | Общие вопросы C/C++ | 5 | 15.05.2009 22:18 |