История изменений
Исправление
RazrFalcon,
(текущая версия)
:
int main()
{
struct B1 {
virtual void foo() = 0;
};
struct B2 : B1 {
virtual void bar() = 0;
};
struct C1 : B1 {
void foo() { qDebug() << "C1::foo"; }
};
struct C2 : C1, B2 {
void bar() { qDebug() << "C1::bar"; }
};
C2 c2;
}
Упс:
error: variable type 'C2' is an abstract class
C2 c2;
^
note: unimplemented pure virtual method 'foo' in 'C2'
virtual void foo() = 0;
^
Исправление
RazrFalcon,
:
int main()
{
struct B1 {
virtual void foo() = 0;
};
struct B2 : B1 {
virtual void bar() = 0;
};
struct C1 : B1 {
void foo() { qDebug() << "C1::foo"; }
};
struct C2 : C1, B2 {
void bar() { qDebug() << "C1::bar"; }
};
C2 c1;
}
Упс:
error: variable type 'C2' is an abstract class
C2 c1;
^
note: unimplemented pure virtual method 'foo' in 'C2'
virtual void foo() = 0;
^
Исходная версия
RazrFalcon,
:
int main()
{
struct B1 {
virtual void foo() = 0;
};
struct B2 : B1 {
virtual void bar() = 0;
};
struct C1 : B1 {
void foo() { qDebug() << "C1::foo"; }
};
struct C2 : C1, B2 {
void bar() { qDebug() << "C1::bar"; }
};
C2 c1;
}