Вопрос № 57297: Здравствуйте!
Вопрос по С++;
Имеется 2 класса
class parent
{
};
class child: public parent
{
int pole1;
public:
int method1()
{
return pole;
}
};
void ma...Вопрос № 57363: Здравствуйте!
Подскажите пожалуйсто, где можно найти C и C++ последние версии. Для Win XP и под DOS... Со всеми библиотеками там и т.д. и т.п. - 100% рабочую......Вопрос № 57381: Здраствуйте господа!!!! Подскажите Мне - Тупому Чайнику....Где Можно Скачать эту Прогу(С++)???
С Программой Я Совершенно Не Знаком...Просто появилось Очень сильное Желание Что нибудь Создать... Хотябы Совсем ничтожного Вида...---Но Всетаки Самом...
Вопрос № 57.297
Здравствуйте!
Вопрос по С++;
Имеется 2 класса
class parent
{
};
class child: public parent
{
int pole1;
public:
int method1()
{
return pole;
}
};
void main()
{
parent *p;
p=new child;
}
Вопрос в том, как через указатель p получить доступ к методам класса child, если это возможно ?
Заранее благодарен за ответ! :)
Отправлен: 01.10.2006, 09:08
Вопрос задал: Svanshe (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Uman
Здравствуйте, Svanshe!
А почему бы не попробовать так...
void main()
{
parent *p=new child;;
int i = p->method1();
}
Ответ отправил: Uman (статус: 2-ой класс)
Ответ отправлен: 01.10.2006, 10:20
Отвечает: Melamed
Здравствуйте, Svanshe!
Тут нужно явно преобразовать преобразование типов, которое можно выполнить двумя способами:
((child *)p)->method();
или
union
{
parent *pParent;
child *pChild
} p1
p1.pParent = p;
p1.pChild->method();
Ответ отправил: Melamed (статус: 5-ый класс)
Ответ отправлен: 01.10.2006, 12:21
Отвечает: Хватов Сергей
Здравствуйте, Svanshe!
через dynamic_cast. Другие способы могут привести к неприятностям. Смотрите в приложении.
Вообще-то чтобы делать так, нужны очень веские основания. Попытайтесь обойтись виртуальными методами, перегружеными (overloaded) в классе child
Приложение:
Ответ отправил: Хватов Сергей (статус: 5-ый класс)
Ответ отправлен: 01.10.2006, 19:20
--------- "Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 4-ый класс)
Ответ отправлен: 02.10.2006, 09:53
Отвечает: Sergey A. Wedensky
Здравствуйте, Svanshe!
А компилятор не ругается на строку
p = new child;
?
Я бы написал
p = (parent*) new child;
А доступ получить элементарно - преобразованием типа:
((child*)p)->method1();
И раз Вы создаете объект child, не забудьте что удалять нужно тоже его, т.е.
delete (child*)p;
Ответ отправил: Sergey A. Wedensky (статус: 4-ый класс)
Ответ отправлен: 02.10.2006, 10:05
Вопрос № 57.363
Здравствуйте!
Подскажите пожалуйсто, где можно найти C и C++ последние версии. Для Win XP и под DOS... Со всеми библиотеками там и т.д. и т.п. - 100% рабочую...
Отправлен: 01.10.2006, 21:20
Вопрос задал: ZeLiK (статус: 8-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Vaga
Здравствуйте, ZeLiK!
http://msdn.microsoft.com/vstudio/express/visualc/
--------- Ошибка становится ошибкой, когда рождается как истина. Станислав Ежи Лец
Ответ отправил: Vaga (статус: 3-ий класс)
Ответ отправлен: 02.10.2006, 06:47 Оценка за ответ: 4 Комментарий оценки: Только Визуальный? Но всё-равно спасибо - подойдёт ;)
Вопрос № 57.381
Здраствуйте господа!!!! Подскажите Мне - Тупому Чайнику....Где Можно Скачать эту Прогу(С++)???
С Программой Я Совершенно Не Знаком...Просто появилось Очень сильное Желание Что нибудь Создать... Хотябы Совсем ничтожного Вида...---Но Всетаки Самому!!!!
И Еще... Где можно Найти Документацию(ну В Плане Инструкцию)По Этой Программе(Желательно На Русском Языке)...
Заранее Премного Благодарен!!!!!
-=Sovest=-
Пасиб Вам Еще раз!!!!!!!!!
Отправлен: 01.10.2006, 23:45
Вопрос задал: -=Sovest=- (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: UnRe@l
Здравствуйте, -=Sovest=-!
Видимо Вы имеете в виду среду разработки (RAD IDE). Скачать Вам ту же Microsoft Visual Studio .NET не удастся.
Документации достаточно в Интернет. К примеру, http://www.mini-soft.ru/book/visual_c/ . Без особых проблем сможете найти гораздо больше, воспользовавшись тем же Яндексом. Кроме того, есть и книгопечатная продукция.
--------- Cogito, ergo sum (c) R. Descartes (1596-1650)
Ответ отправил: UnRe@l (статус: 1-ый класс)
Ответ отправлен: 02.10.2006, 04:20 Оценка за ответ: 5 Комментарий оценки: Пасиб!!! Большое!!!!!!!!!!!!
Отвечает: Vaga
Здравствуйте, -=Sovest=-!
http://msdn.microsoft.com/vstudio/express/visualc/
--------- Ошибка становится ошибкой, когда рождается как истина. Станислав Ежи Лец
Ответ отправил: Vaga (статус: 3-ий класс)
Ответ отправлен: 02.10.2006, 06:48 Оценка за ответ: 4 Комментарий оценки: Пасиб!!!!!
Отвечает: dentist
Здравствуйте, -=Sovest=-!
ну во первых C++ это не прога а язык программирования.
вовторых, прогу =), чтобы писать на С++ можно скачать с интернета (читаем тут: http://www.gamedev.ru/faq/?id=17) или купить в магазине на диске.
втретьих книги бывают разные ;) электронные и бумажные. бумажные покупаются в книжных магазинах или заказываются в интернете (например тут: http://www.gamedev.ru/books/), а электронные, гугл приказал качать тут: http://www.gamedev.ru/faq/?id=48
;)
--------- "Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 4-ый класс)
Ответ отправлен: 02.10.2006, 10:02 Оценка за ответ: 5 Комментарий оценки: Пасиб Друг!!!!!