Ниже приведен фрагмент кода:
#include <iostream>
using namespace std;
class A
{
public:
virtual void print() = 0;
};
void test(A x) // ERROR: Abstract class cannot be a parameter type
{
cout << "Hello" << endl;
}
Есть ли решение/обходное решение для этой ошибки другое/лучше, чем замена
virtual void print() = 0;
с
virtual void print() = { }
EDIT: я хочу иметь возможность передать любой класс, расширяющий/реализующий базовый класс A в качестве параметра, используя полиморфизм (т.е. A* x = new B() ; test(x);
)
Приветствия