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

Конструктор - C++

Войти
Регистрация
Восстановить пароль
 
marina2
Рожденная для битвы
 Аватар для marina2
271 / 49 / 4
Регистрация: 08.11.2009
Сообщений: 1,019
27.11.2011, 09:25     Конструктор #1
Вот если в конструкторе инициализировать какую-то переменную (к=0), можно же ее в каком-то методе изменять (например к++)?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 09:25     Конструктор
Посмотрите здесь:

C++ Конструктор
Конструктор C++
Конструктор C++
Конструктор C++
Конструктор C++
C++ this и конструктор
C++ конструктор
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.11.2011, 09:35     Конструктор #2
можно
Сыроежка
Заблокирован
27.11.2011, 09:37     Конструктор #3
Цитата Сообщение от marina2 Посмотреть сообщение
Вот если в конструкторе инициализировать какую-то переменную (к=0), можно же ее в каком-то методе изменять (например к++)?
Если этот член класса не являепся константным объектом или константной ссылкой, то конечно можно изменять в любом методе, который в свою очередь не является константным.
marina2
Рожденная для битвы
 Аватар для marina2
271 / 49 / 4
Регистрация: 08.11.2009
Сообщений: 1,019
27.11.2011, 09:48  [ТС]     Конструктор #4
Просто в MFC столкнулась с проблемой, что при приращении переменной программа грохается...
Сыроежка
Заблокирован
27.11.2011, 09:54     Конструктор #5
Цитата Сообщение от marina2 Посмотреть сообщение
Просто в MFC столкнулась с проблемой, что при приращении переменной программа грохается...
Это никак не связано с той постановкой вопроса, который вы сформулировали. Если бы нельзя было изменить член класса, компилятор вам бы об этом сообщил на этапе компиляции.
marina2
Рожденная для битвы
 Аватар для marina2
271 / 49 / 4
Регистрация: 08.11.2009
Сообщений: 1,019
27.11.2011, 15:44  [ТС]     Конструктор #6
А не подскажете, как из функции базового класса получить доступ к функции производного класса, а то я пока не сталкивалась...?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.11.2011, 16:09     Конструктор #7
Никак.
Читай про виртуальные функции.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
27.11.2011, 16:13     Конструктор #8
Цитата Сообщение от marina2 Посмотреть сообщение
А не подскажете, как из функции базового класса получить доступ к функции производного класса, а то я пока не сталкивалась...?
через dynamic_cast
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.11.2011, 16:16     Конструктор #9
Цитата Сообщение от alex_x_x Посмотреть сообщение
через dynamic_cast
Не вариант. Базовый класс не должен знать о потомках.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7955 / 4717 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
27.11.2011, 16:19     Конструктор #10
Сыроежка,
Если этот член класса не являепся константным объектом или константной ссылкой, то конечно можно изменять в любом методе, который в свою очередь не является константным.
Про mutable не упомянули.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
27.11.2011, 16:28     Конструктор #11
Цитата Сообщение от Deviaphan Посмотреть сообщение
Не вариант. Базовый класс не должен знать о потомках.
мало ли что не должен - это c++
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.11.2011, 16:35     Конструктор #12
Цитата Сообщение от alex_x_x Посмотреть сообщение
мало ли что не должен - это c++
В любом случае это всё равно не доступ к методу дочернего класса из базового. Ведь доступ через потомка происходить будет.
А ещё я не буду подсказывать, как курить и кольца из носа пускать, потому что это тоже не правильно.)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2011, 16:55     Конструктор
Еще ссылки по теме:

C++ Конструктор
Конструктор C++ и new C++
C++ Конструктор
C++ Конструктор
C++ Конструктор

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

Или воспользуйтесь поиском по форуму:
Сыроежка
Заблокирован
27.11.2011, 16:55     Конструктор #13
Цитата Сообщение от marina2 Посмотреть сообщение
А не подскажете, как из функции базового класса получить доступ к функции производного класса, а то я пока не сталкивалась...?
Базовый класс не знает, какие будут созданы производные классы на его основе. Это только производные классы знают о своих базовых классах. Обратное не верно.
Поэтому чтобы выполнить такую задачу, надо использовать динамическое приведение типов, если это допустимо к вашему объекту класса, и если все закончится успешно без генерации исключения, то вызывать функцию производного класса.
Yandex
Объявления
27.11.2011, 16:55     Конструктор
Ответ Создать тему
Опции темы

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