有一个用例
Class foo {
public:
static std::string make(std::string a) { .. }
}
我想让 foo 成为一个抽象基类,但显然 make 不能在这个抽象基类中,因为虚函数不能是静态的。
像这样
Class foo {
public:
static virtual std::string make (std::string) = 0; //error this cannot be done
}
Class fooImpl: foo{
public:
std::string make(std::string a) { ..}
}
从设计的角度来看,在抽象类中使方法非静态或使派生类具有静态方法是一种好方法。