C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の基本クラスでオーバーロードされたすべてのメソッドを非表示にする


C ++では、関数のオーバーロード手法を使用できます。ただし、一部の基本クラスにオーバーロードされた形式の1つのメソッド(同じ名前の異なる関数シグネチャ)があり、派生クラスがベース内に存在する関数の1つを再定義する場合、その関数のオーバーロードされたバージョンはすべて非表示になります。派生クラス。

明確なアイデアを得るために、1つの例を見てみましょう。

#include <iostream>
using namespace std;
class MyBaseClass {
   public:
      void my_function() {
         cout << "This is my_function. This is taking no arguments" << endl;
      }
      void my_function(int x) {
         cout << "This is my_function. This is taking one argument x" << endl;
      }
};
class MyDerivedClass : public MyBaseClass {
   public:
      void my_function() {
         cout << "This is my_function. From derived class, This is taking no arguments" << endl;
      }
};
main() {
   MyDerivedClass ob;
   ob.my_function(10);
}

出力

[Error] no matching function for call to 'MyDerivedClass::my_function(int)'
[Note] candidate is:
[Note] void MyDerivedClass::my_function()
[Note] candidate expects 0 arguments, 1 provided
>
  1. C ++の親クラスから継承されるものは何ですか?

    オブジェクト指向プログラミングでは、親クラスの特性を継承することができます。親クラスは基本クラスと呼ばれ、子クラスは派生クラスと呼ばれます。派生クラスは、基本クラスのメンバー関数であるデータメンバーを継承できます。 データメンバーがパブリックの場合、派生クラス、同じクラス、およびクラス外からアクセスできます。データメンバーが保護されている場合、それらは派生した同じクラスからのみアクセスできますが、クラス外ではアクセスできません。データメンバーがプライベートの場合、同じクラスのみがそれらにアクセスできます。 これはC++言語での継承の例です 例 #include <bits/stdc+

  2. C++のローカルクラス

    関数内で宣言されたクラスは、その関数に対してローカルであるため、C++ではローカルクラスと呼ばれます。 ローカルクラスの例を以下に示します。 #include<iostream> using namespace std; void func() {    class LocalClass {    }; } int main() {    return 0; } 上記の例では、func()は関数であり、クラスLocalClassは関数内で定義されています。したがって、ローカルクラスとして知られています。 ローカルクラ