C+中的同时重写和重载+; 大家好,我对下面的C++代码感到困惑,其中重载和重写是某种程度上的相似。

C+中的同时重写和重载+; 大家好,我对下面的C++代码感到困惑,其中重载和重写是某种程度上的相似。,c++,inheritance,overloading,overriding,overload-resolution,C++,Inheritance,Overloading,Overriding,Overload Resolution,以下是我的编译器给出的错误(mingw32-g++内部代码::Blocks 13.12) 下面是生成它们的代码 #include <iostream> using namespace std; class Base{ public: void show(int x){ cout<<"Method show in base class."<<endl; } void show(

以下是我的编译器给出的错误(mingw32-g++内部代码::Blocks 13.12)

下面是生成它们的代码

    #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();
    }
#包括
使用名称空间std;
阶级基础{
公众:
无效显示(整数x){

cout这是名称隐藏。
Derived::show
Base
中隐藏同名的方法。您可以通过
使用
来介绍它们

class Derived:public Base{
public:
  using Base::show;
  void show(int x){
    cout<<"Method show in derived class."<<endl;
  }
};
派生类:公共基{
公众:
使用Base::show;
无效显示(整数x){
coutLook up“隐藏规则”。您的编译器正在执行它需要执行的操作。
class Derived:public Base{
public:
  using Base::show;
  void show(int x){
    cout<<"Method show in derived class."<<endl;
  }
};