PDA

Просмотр полной версии : Массив указателей на базовый класс


herfleisch
25.06.2009, 16:47
Есть массив указателей MainArray на базовый класс string. Нужно динамически заполнять его указателями на производный класс stringid. С этим проблем не возникает. Но вот такой код не работает:

(*(MainArray[i]))->CharsDown();

так как метод CharsDown() является членом производного класса stringid, а указатель у нас на объект класса string, в котором он и ищет данный метод. Как в данном случае вызвать CharsDown() ???

razb
25.06.2009, 17:14
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++. Я его не могу использовать никаким образом.

LEE_ROY
25.06.2009, 17:52
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.

Ra$cal
25.06.2009, 19:55
ну делай классическое приведение типов
((stringid *)MainArray[i])->CharsDown();

razzzar
25.06.2009, 20:03
Под вистой. Борландом пользую, потому что в лабораторной нужно обязательно использовать conio.h.
В студии тоже есть conio.h
Это стандартная библиотека С

herfleisch
25.06.2009, 20:12
В студии она есть, только нужных мне функций она не содержит.

herfleisch
25.06.2009, 20:28
Спасибо за ответы. Больше всего тут уместно явное приведение типов. Просто поначалу я как-то коряво им воспользовался и мне показалось что это не пройдёт.