Bonjour à tous Je suis intrigué par le morceau de code C++ suivant dans lequel la surcharge et le dépassement sont en quelque sorte simultanés.Redommander et surcharger simultanément en C++
Voici les erreurs que mon compilateur donne (mingw32-g ++ intérieur Code :: Blocks 13.12)
error: no matching function for call to 'Derived::show()'
note: candidate is:
note: void Derived::show(int)
note: candidate expects 1 argument, 0 provided
Voici le code qui les produit.
#include <iostream>
using namespace std;
class Base{
public:
void show(int x){
cout<<"Method show in base class."<<endl;
}
void show(){
cout<<"Overloaded method show in base class."<<endl;
}
};
class Derived:public Base{
public:
void show(int x){
cout<<"Method show in derived class."<<endl;
}
};
int main(){
Derived d;
d.show();
}
J'ai essayé de déclarer Base :: show() comme virtuel. Puis j'ai essayé la même chose avec Base :: show (int). Ne fonctionne pas non plus.
Recherchez "règle de masquage". Votre compilateur fait ce qu'il doit faire. – Peter