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

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

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

Показать сообщение отдельно
AlexVRud
440 / 150 / 38
Регистрация: 04.07.2014
Сообщений: 425
07.07.2015, 09:13     Как записать два разных класса в массив?
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
#include <iostream>
#include <string>
#include <vector>
#include <memory>
 
class Base {
public:
  virtual std::string getName() = 0;
};
 
class Foo: public Base {
public:
  std::string getName() { return std::string("Foo"); };
};
 
class Bar: public Base {
public:
  std::string getName() { return std::string("Bar"); };
};
 
 
int main() {
  std::vector< std::shared_ptr<Base> > xs;
 
  xs.push_back( std::static_pointer_cast<Base>(std::make_shared<Foo>()) );
  xs.push_back( std::static_pointer_cast<Base>(std::make_shared<Bar>()) );
  xs.push_back( std::static_pointer_cast<Base>(std::make_shared<Bar>()) );
  xs.push_back( std::static_pointer_cast<Base>(std::make_shared<Foo>()) );
 
  for(auto x: xs) {
    std::cout << x->getName() << std::endl;
  }
 
  return 0;
}
Складывать в одну кучу следует только родственные объекты, так что следует завести родительский класс. И всё станет проще.
 
Текущее время: 02:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru