Просмотр полной версии : Массив указателей на базовый класс
herfleisch
25.06.2009, 16:47
Есть массив указателей MainArray на базовый класс string. Нужно динамически заполнять его указателями на производный класс stringid. С этим проблем не возникает. Но вот такой код не работает:
(*(MainArray[i]))->CharsDown();
так как метод CharsDown() является членом производного класса stringid, а указатель у нас на объект класса string, в котором он и ищет данный метод. Как в данном случае вызвать CharsDown() ???
static_cast<stringid *>(MainArray[i])->CharsDown();
herfleisch
25.06.2009, 17:35
Borland C++ 3.11 ругается вот так на эту строку:
Undefined symbol: static_cast
Inproper use of typedef: stringid
Expression syntax
herfleisch
25.06.2009, 17:46
Как я понимаю, такой вариант решения проблемы относится к Visual C++. Я его не могу использовать никаким образом.
Borland C++ 3.11 ругается вот так на эту строку:
Undefined symbol: static_cast
Inproper use of typedef: stringid
Expression syntax
под windows 3 компилиш??
herfleisch
25.06.2009, 18:21
Под вистой. Борландом пользую, потому что в лабораторной нужно обязательно использовать conio.h.
ну делай классическое приведение типов
((stringid *)MainArray[i])->CharsDown();
Под вистой. Борландом пользую, потому что в лабораторной нужно обязательно использовать conio.h.
В студии тоже есть conio.h
Это стандартная библиотека С
herfleisch
25.06.2009, 20:12
В студии она есть, только нужных мне функций она не содержит.
herfleisch
25.06.2009, 20:28
Спасибо за ответы. Больше всего тут уместно явное приведение типов. Просто поначалу я как-то коряво им воспользовался и мне показалось что это не пройдёт.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot