#include <iostream>
using namespace std;
class A {
public:
virtual void func(char a, char b) = 0;
};
class B : public A {
public:
void func(char a, char b) {
cout << a << b;
}
virtual void func1(char a, char b) = 0;
};
class D : public B {
public:
void func(char a, char b) {
cout << a;
}
void func1(char a, char b) {
cout << b << a;
}
void func2(char a, char b) {
cout << b;
}
};
int main() {
A a; B b; D d;
char i = 'o', j = 'k';
d.func1(i, j);
}
= 0
; синтаксис дибильный, конечно). Этот метод не имеет тела, и его поэтому нельзя вызвать.А а;
непосредственно вызывает конструктор без параметров, в этом месте создаётся инстанс класса(синтаксис не менее дибильный). Возникает противоречие. И поэтому программа не компилируется.А&
и указатели А*
. Ссылка и указатель будут ссылаться (указывать) на инстанс потомка, которого можно создать.