| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Наследование. Как передать переменную? |
| Автор: Karisha 24.10.2008, 03:06 | ||
| Привет всем! У меня снова вопрос! Задали такую задачку. Есть 1 главный класс и 3 наследуемых.
Как из функций:
|
| Автор: J0ker 24.10.2008, 03:15 |
| id |
| Автор: Karisha 24.10.2008, 03:19 |
| не получается, выдает случайное 9 значное число |
| Автор: mes 24.10.2008, 03:45 |
так ты ее не инициализируешь, поэтому переменная хранит муссор. А вообше переменную надо спрятать в private: , и добавить функцию int GetID () const { return id; } которую поместить в public: если нужна всем или в protected: если никто кроме наследников не должен знать этот номер. |
| Автор: J0ker 24.10.2008, 05:01 |
это два противоположных утверждения |
| Автор: bsa 24.10.2008, 11:12 | ||
|
| Автор: Karisha 24.10.2008, 18:18 | ||
Ничего не поняла из Вашего примера
Я извиняюсь, но для меня c++ как тайская грамота =/ |
| Автор: J0ker 24.10.2008, 18:57 | ||
|
| Автор: Karisha 24.10.2008, 19:21 | ||||
Все равно выводит случайные числа
|
| Автор: J0ker 24.10.2008, 19:57 |
какие в переменной такие и выводит собственно я не въезжаю чего вам надо поставленная задача выполнена |
| Автор: Karisha 24.10.2008, 20:00 |
| Мне нужно в Классе А, присвоить переменной id - ноль. В классе B увеличить значение переменной на единицу, и вывести его (т.е. присвоить id - 1) В классе С увеличить значение переменной на единицу, и вывести его (т.е. присвоить id - 2) В классе D увеличить значение переменной на единицу, и вывести его (т.е. присвоить id - 3) |
| Автор: mes 24.10.2008, 20:04 | ||
Это задание надуманое , так как у класса нет переменных(статические тоже под описание не подходят). Вы что то перепутали. Добавлено через 3 минуты и 54 секунды обратите внимание на то что класс называется A, а работаете вы с myA - который является объектом класса А. |
| Автор: J0ker 24.10.2008, 20:08 | ||||||||
вынесите id из класса
либо объявите ее внутри класса как static:
Добавлено через 3 минуты и 7 секунд
вы уж определитесь |
| Автор: Karisha 24.10.2008, 20:14 |
| mes,J0ker , спасибо огромное за помощь, всё заработало! |
| Автор: J0ker 24.10.2008, 20:22 |
| да уж о понимании кода мы скромно промолчим... |
| Автор: mes 24.10.2008, 20:22 |
толку то от того что заработало... Было бы лучше, если бы бы Вам пришло понимание процесса. |
| Автор: eyeofhell 27.10.2008, 16:13 |
| Моя телепатия сейчас на удивление сильна, несмотря на понедельник. Ему нужно было написать пример наследования, при котором в конструкторе A переменная инициализируется, в конструкторе потомка увеличивается на 1 и выводится на экран, в конструкторе следующего потомка опять увеличивается на 1 и так далее. Вообщем иллюстрация порядка вызова конструкторов при наследовании. |
| Автор: J0ker 27.10.2008, 17:50 |
| eyeofhell, ну это вряд-ли он бы не придумал такие названия как void funcB() void funcС() void funcD() - явно препод постарался... но, честно говоря, чему должен был научить данный пример для меня осталось загадкой... разве что static переменные в классе |
| Автор: mes 27.10.2008, 18:05 |
но название перменой id эту догадку тоже ставит под сомнение.. |