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>
-
C ++の親クラスから継承されるものは何ですか?
オブジェクト指向プログラミングでは、親クラスの特性を継承することができます。親クラスは基本クラスと呼ばれ、子クラスは派生クラスと呼ばれます。派生クラスは、基本クラスのメンバー関数であるデータメンバーを継承できます。 データメンバーがパブリックの場合、派生クラス、同じクラス、およびクラス外からアクセスできます。データメンバーが保護されている場合、それらは派生した同じクラスからのみアクセスできますが、クラス外ではアクセスできません。データメンバーがプライベートの場合、同じクラスのみがそれらにアクセスできます。 これはC++言語での継承の例です 例 #include <bits/stdc+
-
C++のローカルクラス
関数内で宣言されたクラスは、その関数に対してローカルであるため、C++ではローカルクラスと呼ばれます。 ローカルクラスの例を以下に示します。 #include<iostream> using namespace std; void func() { class LocalClass { }; } int main() { return 0; } 上記の例では、func()は関数であり、クラスLocalClassは関数内で定義されています。したがって、ローカルクラスとして知られています。 ローカルクラ