class Ca
{
public:
}
private:
virtual void calName() const = 0;
};
class Cb : public Ca
{
private:
virtual void calName() const { // 子类决定如何做!
printf("Cb::calName()\n");
}
{
public:
int getName() const { // 基类决定调用顺序
// pre-check
calName();
// post-clean
return 0;}
private:
virtual void calName() const = 0;
};
class Cb : public Ca
{
private:
virtual void calName() const { // 子类决定如何做!
printf("Cb::calName()\n");
}
};
调用:
Cb b;
b.getName();
输出:
Cb::calName()