У меня есть следующие классы:
class A {
void commonFunction() = 0;
}
class Aa: public A {
//Some stuff...
}
class Ab: public A {
//Some stuff...
}
В зависимости от пользовательского ввода я хочу создать объект Aa или Ab. Моя мысль о подмене была такой:
A object;
if (/*Test*/) {
Aa object;
} else {
Ab object;
}
Но компилятор дает мне:
error: cannot declare variable ‘object’ to be of abstract type ‘A’
because the following virtual functions are pure within ‘A’:
//The functions...
Есть хороший способ решить эту проблему?