7
Ho un insieme di classi simili:C++ evitando manualmente chiamando funzione della classe base
class A {
public:
int DoIt() {
//common code
}
};
class B : public A {
int DoIt() {
if (A::DoIt() == 1) {
return 1;
}
else {
// do b specific code
}
}
};
class C : public A {
int DoIt() {
if(A::DoIt()==1) {
return 1;
}
else {
// do c specific code
}
}
};
c'è un modo per evitare manualmente mettendo questo codice:
if (A::Doit() == 1) { return 1; } else {
in ogni classe che è derivato da A?
La sintassi corretta è 'classe B: pubblico A'. C++ non è Java. – kennytm
@Justin ᚅᚔᚈᚄᚒᚔ: OP sta chiedendo come evitare di digitare 'if (A :: Doit() == 1) restituisce 1; } else {'in ogni sottoclasse, non come chiamare' A :: Doit() 'senza conoscere A. La domanda collegata non è nemmeno correlata all'ereditarietà. – kennytm