Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

ох уж этот полиморфизм - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Без дополнительных библиотек преобразования текстового файла http://www.cyberforum.ru/cpp-beginners/thread1087286.html
Добрый день! Ребята срочно нужна помощь, буду признателен,нужно в С++ разработать программу,желательно без подключений дополнительных библиотек следующего условия: Правило преобразования...
C++ Как запустить компилятор в parallel studio Как запустить компилятор в parallel studio? То есть саму студию. Не могу ярлык найти, только для VS есть и различных либ. http://www.cyberforum.ru/cpp-beginners/thread1087236.html
Как минимально просто использовать функция std::find с последовательность типа : list<myClass*> C++
Добрый день. Как минимально просто использовать функция std::find с последовательность типа : list<myClass*>,если в классе перегружен оператор сравнения?
C++ Напишите программу, которая запрашивает расход бензина в европейском стиле (количество литров на 100 км) и преобразует его в стиль, принятый в США —
Добрый вечер! Напишите программу, которая запрашивает расход бензина в европейском стиле (количество литров на 100 км) и преобразует его в стиль, принятый в США — число миль на галлон. Обратите...
C++ Программа на Microsoft Visual Studio 2012, нужно организовать файл данных http://www.cyberforum.ru/cpp-beginners/thread1087216.html
Необходимо организовать файл данных из данной программы #include <iostream> #include <time.h> #include <conio.h> using namespace std; /* Описать структуру с именем ITINERARY, который...
C++ Калькулятор выводит неверный результат Изучаю С++ по Страуструпу. Дошел до следующей задачи(калькулятор) и "буксую", не пойму в чем дело, код с книгой сверял несколько раз. Программа запускается, но выводит не верный результат, всегда... подробнее

Показать сообщение отдельно
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
01.02.2014, 23:39
У вас в скобках (*I) точно стоит указатель ??? Или вы конкретный объект пытаетесь привести к типу указателя?

Добавлено через 19 минут
Не знаю о чем вы, но у меня на gcc 4.8 это работает без ошибок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <list>
 
class SuperClass {
public:
    virtual void say() {
        std::cout << "i'm SuperClass!" << std::endl;
    }
};
 
class Subclass : public SuperClass {
public:
    virtual void say() {
        std::cout << "i'm Subclass!" << std::endl;
    }
    void sayHello() {
        std::cout << "Hello from subclass non virtual method!" << std::endl;
    }
};
 
int main()
{
    std::list<SuperClass *> list;
    list.push_back(new Subclass);
 
    for (std::list<SuperClass *>::iterator i = list.begin(); i != list.end(); ++i) {
        Subclass * subclassPtr = dynamic_cast<Subclass *>(*i);
        (*i)->say();
        subclassPtr->sayHello();
    }
 
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru