В ООП я новичок. Дошел до наследования. Допустим, есть у меня класс Base. От него наследуются два класса: EXT1, который хранит целочисленную переменную; EXT2, который хранит массив из трёх вещественных чисел. И у меня есть для классов EXT1 и EXT2 геттеры. Понятно, что возвращать они будут данные разных типов. Поэтому у меня не получается для них создать виртуальную функцию в классе Base. Суть вопроса: как реализовать виртуальную функцию в классе Base, чтобы я мог создать указатель типа Base, присвоить ему объект типа EXT1 или EXT2, и вызвать геттер? Заранее спасибо. Код:
#include <iostream>
using namespace std;
class Base {
};
class EXT1:public Base {
public:
EXT1(int a) {
data = a;
}
int data;
int GetData() {
return data;
}
};
class EXT2 :public Base {
public:
EXT2(float* arr) {
for (int i = 0; i < 3; i++) {
data[i] = arr[i];
}
}
float data[3];
float* GetData() {
return data;
}
};
int main() {
EXT1 ext1(3);
Base* base;
base = &ext1;
cout << base->GetData() << endl;
float arr[3] = { 1,2,3 };
EXT2 ext2(arr);
base = &ext2;
cout << base->GetData() << endl;
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как можно сгенерировать случайную позицию для опорного элемента быстрой сортировки не используя функцию rand? Другие стратегии выбора не подходят...
При движении описанном в таком коде, игрок движется угловато: либо влево, либо вверх, либо вправо, либо вниз, ли по диагонали под углом 45 градусов...
В связи с решением одной задачи, в которой я из - за std::stoi получила TL, мне стало интересно - за сколько эта функция работает (в плане ассимптотики)Хотя...
Возник вопрос - Как запустить mp3-трек в консоли? Погуглил и все ответы были на тему "установить какие-то библиотеки и они будут на фоне подгружать...