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

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

Войти
Регистрация
Восстановить пароль
 
marina2
Рожденная для битвы
272 / 50 / 5
Регистрация: 08.11.2009
Сообщений: 1,020
#1

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

27.11.2011, 09:25. Просмотров 579. Ответов 12
Метки нет (Все метки)

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

Конструктор - C++
Всем доброго времени суток. Пишу программу, которая вычисляет ранг матрицы и выводит транспонированную. Вот код: matr.h: class matr {...

this и конструктор - C++
Всем привет! Столкнулся с задачей: У класса есть статический указатель, который инициализируется CableTV* CableTV :: ptr = new...

Конструктор - C++
Для чего здесь конструктор, что он делает? и почему объект one разрушается первым? #include<iostream> using namespace std; class ...

Конструктор new - C++
#include "stdafx.h" #include <string> #include <iostream> using namespace std; class IoString{ public: string str; ...

Конструктор - C++
Прошу помочь разобраться , что означает строка с пометкой ... а именно это :itsA(itsA class Two: public One { Two(int...

Конструктор - C++
Помогите к этой программе дописать конструктор с параметрами, препод сказал чтоб с клавиатуры вводилась карта, что-то типо этого.... ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.11.2011, 09:35     Конструктор #2
можно
Сыроежка
Заблокирован
27.11.2011, 09:37     Конструктор #3
Цитата Сообщение от marina2 Посмотреть сообщение
Вот если в конструкторе инициализировать какую-то переменную (к=0), можно же ее в каком-то методе изменять (например к++)?
Если этот член класса не являепся константным объектом или константной ссылкой, то конечно можно изменять в любом методе, который в свою очередь не является константным.
marina2
Рожденная для битвы
272 / 50 / 5
Регистрация: 08.11.2009
Сообщений: 1,020
27.11.2011, 09:48  [ТС]     Конструктор #4
Просто в MFC столкнулась с проблемой, что при приращении переменной программа грохается...
Сыроежка
Заблокирован
27.11.2011, 09:54     Конструктор #5
Цитата Сообщение от marina2 Посмотреть сообщение
Просто в MFC столкнулась с проблемой, что при приращении переменной программа грохается...
Это никак не связано с той постановкой вопроса, который вы сформулировали. Если бы нельзя было изменить член класса, компилятор вам бы об этом сообщил на этапе компиляции.
marina2
Рожденная для битвы
272 / 50 / 5
Регистрация: 08.11.2009
Сообщений: 1,020
27.11.2011, 15:44  [ТС]     Конструктор #6
А не подскажете, как из функции базового класса получить доступ к функции производного класса, а то я пока не сталкивалась...?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.11.2011, 16:09     Конструктор #7
Никак.
Читай про виртуальные функции.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
27.11.2011, 16:13     Конструктор #8
Цитата Сообщение от marina2 Посмотреть сообщение
А не подскажете, как из функции базового класса получить доступ к функции производного класса, а то я пока не сталкивалась...?
через dynamic_cast
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.11.2011, 16:16     Конструктор #9
Цитата Сообщение от alex_x_x Посмотреть сообщение
через dynamic_cast
Не вариант. Базовый класс не должен знать о потомках.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
27.11.2011, 16:19     Конструктор #10
Сыроежка,
Если этот член класса не являепся константным объектом или константной ссылкой, то конечно можно изменять в любом методе, который в свою очередь не является константным.
Про mutable не упомянули.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
27.11.2011, 16:28     Конструктор #11
Цитата Сообщение от Deviaphan Посмотреть сообщение
Не вариант. Базовый класс не должен знать о потомках.
мало ли что не должен - это c++
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 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++ - C++
Помогите, пожалуйста, разобраться с задачей. Дано: создать программу используя конструктор, деструктор, классы с наследованием. Я написала,...

Конструктор - C++
Какие числа выведет если убрать cin >> x >> y; #include <stdlib.h> #include <iostream> using namespace std; class myclass { ...

Конструктор - C++
Вот что получилось. программа работает. компилируется, но вылетает во время работы. В чем дело? #include <iostream.h> class vector...


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

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

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