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

Как записать два разных класса в массив? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить значения функции на заданном промежутке с заданным шагом http://www.cyberforum.ru/cpp-beginners/thread1494261.html
написать программу вычисления функции на заданном промежутке с шагом 0.2 и построить график этой функции. у={e}^{(-(x+3))} при x>3.61 y=1 при 0\leq x\leq 3.61 y=0.5x при x<0 #include <iostream> #include<iostream.h> #include<conio.h> #include <cmath> using std::cout;
C++ Вычислить сумму конечного ряда написать программу вычисления суммы конечного ряда. значения x и n вводятся с клавиатуры \sum_{k=1}^{n}((-1)^k*(x+3))/k! http://www.cyberforum.ru/cpp-beginners/thread1494255.html
C++ MS Visual Studio 2013 Express при компиляции программа открывается и сразу закрывается
Вот код: #include <iostream> int main() { std::cout << "Hello" << ; system("pause"); return 0; }
Dll. Создание и использование C++
Добрый вечер! Не порекомендуете хорошей литературы по созданию и использованию dll библиотек в Windows?
C++ функции в С++ http://www.cyberforum.ru/cpp-beginners/thread1494217.html
#include <iostream> #include <cmath> #include <iomanip> using namespace std; void Vvod(int* arrA,int n) { for(int i=0;i<n;i++) { cout<<"arrA= ";
C++ Ошибка при резервировании памяти для своего(!) вектора Всем здравствуйте! Возможно, из названия темы не совсем понятен вопрос, поэтому уточню саму суть: Пишу свой шаблонный класс вектора и столкнулся со странной проблемой: при вызове функции reserve, которая, если верить описанию, должна увеличить емкость вектора, если текущая емкость меньше заданной, происходит ошибка времени компиляции (если я правильно классифицировал ошибку). Вот сама... подробнее

Показать сообщение отдельно
Ev[G]eN
Эксперт С++
5096 / 1534 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.07.2015, 11:40     Как записать два разных класса в массив?
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
34
35
36
37
38
39
40
41
#include <iostream>
#include <vector>
 
class base {
    public:
        virtual ~base() {/*make it polymorphical*/};
};
 
class classA : public base {
    public:
        void methodA() {
            std::cout << "A.methodA()" << std::endl;
        }
};
 
class classB : public base {
    public:
        void methodB() {
            std::cout << "B.methodB()" << std::endl;
        }
};
 
int main() {
    std::vector <base *> vector;
    for (size_t i = 0; i < 10; i++) {
        if (!(i % 2)) {
            vector.push_back(new classA());
        } else {
            vector.push_back(new classB());
        }
    }
    for (base *currentClass : vector) {
        if (dynamic_cast <classA *>(currentClass)) {
            ((classA *)currentClass)->methodA();
        } else {
            ((classB *)currentClass)->methodB();
        }
    }
    
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru