J'ai cette classe abstraite en C++:C++ Appel automatique des méthodes de contrôle de la classe abstraite parent dans les méthodes virtuelles pures implémentées?
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; }
Maintenant, ce que je veux garantir est que pour chaque classe B
dérivée de A
doSomething
commence comme ceci:
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...
}
Comment puis-je garantir que chaque classe dérivée de A
implémente doSomething
en commençant de cette façon?
Il y a un (https://sourcemaking.com/design_patterns/template_method) [Méthode Modèle Design Pattern] – sameerkn