c++純虛擬函式
在基類中,純虛擬函式也不一定不能定義。以前一直認為純虛擬函式只能被派生類定義,看了另一本書以後,才發現也有特殊情況。
class CBase{
public:
virtual void pure() = 0;
};
class CDerived:public CBase{
public:
void pure() {cout<<"CDerived::pure"<<endl;}
void foo(){CBase::pure();}
};
void CBase::pure(){cout<<"CBase::pure"<<endl;}
{
CDerived d;
d.CBase::pure();
d.foo();
d.pure();
CBase *b = &d;
b->pure();
return 0;
}