【发布时间】:2016-12-16 12:23:11
【问题描述】:
我在 C++ 中有这个抽象类:
class A {
public:
A(int size);
virtual void doSomething(int inputSize) = 0;
protected:
virtual bool checkSize(int inputSize);
private:
int size;
}
A::A(int size) : size(size){}
bool A::checkSize(int inputSize) { return size == inputSize; }
现在,我要保证的是,对于从A 派生的每个类B doSomething 的开头是这样的:
class B : public A{
void doSomething(int inputSize);
}
void B::doSomething(int inputSize){
if(!checkSize(inputSize)){
std::cerr<<"wrong inputSize!"<<std::endl;
return;
}
//do something...
}
如何保证A 的每个派生类都以这种方式实现doSomething?
【问题讨论】:
标签: c++ abstract-class virtual pure-virtual