HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Массив указателей на базовый класс
  #1  
Старый 25.06.2009, 16:47
herfleisch
Участник форума
Регистрация: 07.01.2009
Сообщений: 237
С нами: 9126697

Репутация: 97
По умолчанию Массив указателей на базовый класс

Есть массив указателей MainArray на базовый класс string. Нужно динамически заполнять его указателями на производный класс stringid. С этим проблем не возникает. Но вот такой код не работает:
Код:
(*(MainArray[i]))->CharsDown();
так как метод CharsDown() является членом производного класса stringid, а указатель у нас на объект класса string, в котором он и ищет данный метод. Как в данном случае вызвать CharsDown() ???
 
Ответить с цитированием

  #2  
Старый 25.06.2009, 17:14
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами: 9017461

Репутация: 414


По умолчанию

Код:
static_cast<stringid *>(MainArray[i])->CharsDown();
 
Ответить с цитированием

  #3  
Старый 25.06.2009, 17:35
herfleisch
Участник форума
Регистрация: 07.01.2009
Сообщений: 237
С нами: 9126697

Репутация: 97
По умолчанию

Borland C++ 3.11 ругается вот так на эту строку:

Undefined symbol: static_cast
Inproper use of typedef: stringid
Expression syntax
 
Ответить с цитированием

  #4  
Старый 25.06.2009, 17:46
herfleisch
Участник форума
Регистрация: 07.01.2009
Сообщений: 237
С нами: 9126697

Репутация: 97
По умолчанию

Как я понимаю, такой вариант решения проблемы относится к Visual C++. Я его не могу использовать никаким образом.
 
Ответить с цитированием

  #5  
Старый 25.06.2009, 17:52
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
С нами: 10265091

Репутация: 541


По умолчанию

Цитата:
Сообщение от herfleisch  
Borland C++ 3.11 ругается вот так на эту строку:

Undefined symbol: static_cast
Inproper use of typedef: stringid
Expression syntax
под windows 3 компилиш??
 
Ответить с цитированием

  #6  
Старый 25.06.2009, 18:21
herfleisch
Участник форума
Регистрация: 07.01.2009
Сообщений: 237
С нами: 9126697

Репутация: 97
По умолчанию

Под вистой. Борландом пользую, потому что в лабораторной нужно обязательно использовать conio.h.
 
Ответить с цитированием

  #7  
Старый 25.06.2009, 19:55
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами: 10386906

Репутация: 599


По умолчанию

ну делай классическое приведение типов
((stringid *)MainArray[i])->CharsDown();
 
Ответить с цитированием

  #8  
Старый 25.06.2009, 20:03
razzzar
Участник форума
Регистрация: 16.06.2007
Сообщений: 107
С нами: 9948928

Репутация: 208
По умолчанию

Цитата:
Сообщение от herfleisch  
Под вистой. Борландом пользую, потому что в лабораторной нужно обязательно использовать conio.h.
В студии тоже есть conio.h
Это стандартная библиотека С
 
Ответить с цитированием

  #9  
Старый 25.06.2009, 20:12
herfleisch
Участник форума
Регистрация: 07.01.2009
Сообщений: 237
С нами: 9126697

Репутация: 97
По умолчанию

В студии она есть, только нужных мне функций она не содержит.
 
Ответить с цитированием

  #10  
Старый 25.06.2009, 20:28
herfleisch
Участник форума
Регистрация: 07.01.2009
Сообщений: 237
С нами: 9126697

Репутация: 97
По умолчанию

Спасибо за ответы. Больше всего тут уместно явное приведение типов. Просто поначалу я как-то коряво им воспользовался и мне показалось что это не пройдёт.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс для работы с сокетами на С++ _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 32 10.09.2009 10:51
Путеводитель по последним мобильным новинкам. Декабрь 2006 года _GaLs_ "Железо" 0 31.01.2007 18:11



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.