|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.09.2010, 23:49 | #1 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Повторный вызов конструктора класса
Возможно ли это в теории?
Код:
|
28.09.2010, 00:18 | #2 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
Повторно, может конструктор ваш вовсе не конструктор ?
К примеру, может можно сделать так : Код:
|
28.09.2010, 01:39 | #3 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Спасибо, но нужен был именно вызов ctor.
Я добился этого так: Код:
Последний раз редактировалось EUGY; 28.09.2010 в 01:48. |
28.09.2010, 01:43 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вопрос, а что вообще нужно от вызова конструктора?
выполнение некоторых операторов из него ведь так? может стоит их вынести в отдельный метод? (а то ведь не очень как то получается) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
28.09.2010, 02:10 | #5 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Вообще мне это нужно для сброса private-членов класса в дефолт.
CLS() : x(0), y(0)... Вы правы, конечно можно сделать это отдельным методом, но "дизайн" класса будет не тот |
28.09.2010, 04:12 | #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 |
28.09.2010, 05:39 | #7 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Просто любопытно, как рантайм C++ вызывает конструктор объекта класса.
Не думаю, что это против правил. Где увидеть нечто такое: Код:
|
28.09.2010, 08:09 | #8 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Вам правильно советуют: неправильно это - вызывать конструктор ради сброса приватных членов. Напишите метод - reset, например.
Смысл конструктора и его вызова несколько иной, чем просто обнуление переменных. Код:
По теме: Конструктор почти нормальный член класса и его можно вызывать. Цитата:
|
|
28.09.2010, 09:30 | #9 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
CLS cls; // вызывается конструктор (по сути структура кладется на стек и заполняются поля, если они есть)
..... // после его использования вызывается деструктор, который выталкивает его со стека, если в описании класса нет деструктора, он создается автоматически. return 0; |
28.09.2010, 11:42 | #10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
А не проще будет удалить ненужный объект и создать новый с нулевыми членами?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вызов конструктора суперкласса | 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 |