![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| znick |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.3.2003 Репутация: нет Всего: нет |
ЗАДАЧА:
Нужно нескольким классам(CDerivedClass1, CDerivedClass2, ... CDerivedClassN) наследоваться от одного (CBaseClass) , а потом хранить массив разнородных указателей на эти объекты: CBaseClass *array_dif_pobjects[100]; Создаются элементы array_dif_pobjects как объекты CDerivedClass1, CDerivedClass2, ... CDerivedClassN по некоторым условиям, а в масив помещаются так: array_dif_pobjects[i] = (CBaseClass*)instamce_of_CDerivedClassX; Но иногда нужно пользоваться методами CBaseClass из масива array_dif_pobjects, наверно так: array_dif_pobjects[j]->MethodX(...); ПРОБЛЕМА: Не правильная работа с данными, смотрел через отладчик. Прерываешь метод CBaseClass::MethodX, вроде данные поменялись, а потом смотришь их в CDerivedClassX ничего подобного. Что-то здесь не так. Люди, пожалуйста, поделитесь знаниями ООП. Заранее благодарен. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
не правильно объявлена функцияя метод х в нее надо передавать указатель, а не объект.
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Поясни чуть подробнее. МетодX у тебя в производных классах переопределяется?
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| znick |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.3.2003 Репутация: нет Всего: нет |
Step:
Где ты тут объявление метода увидел? И с чего решил что для MetodX нужно что то передавать, я для примера его привел. Я тестил вот такой метод: void CBaseClass::Enable(bool _state) { this->is_enabled = _state; // просто установка флажка // (помнишь тему про редактор форм это из той оперы - http://forum.vingrad.ru/index.php?)act=ST&f=1&t=7739 } Vyacheslav: Нет, функиональности достаточно из базового. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
CBaseClass ты его сам пишеш или это стандартный
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Давай полные объявления классов, а то так сложно понять что ты имеешь ввиду...
-------------------- --- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
Paradox он таким образом пытаеться вспомнить какие переменные у него есть, ведь после this ему список выводиться......
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Step а класс вью для чего?
-------------------- --- |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
По идеи все должно работать. Метод только надобы сделать виртуальным, если он у тебя переопределяется в дочерних классах.
Вот подобный код, все работает #include <iostream.h> class Base { int a; public: void print(){cout<<a<<"\n";} void Seta(int x){a=x;}; }; class Child1:public Base { }; class Child2:public Base { }; void main() { Base* mas[3]; mas[0]=new Child1; mas[1]=new Child2; mas[2]=new Base; for (int i=0;i<3;i++) { mas[i]->Seta(i); mas[i]->print(); } } Если я все правильно поняла -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
Paradox
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Step
-------------------- --- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
Paradox а вью причем.
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Step class view знаешь? Смотришь а тебе все методы и члены класса показываются (справа сбоку у меня в VS.NET)
-------------------- --- |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Step подкалываешь да
-------------------- --- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
Paradox так тош в нете
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |