C++でオーバーロードできない関数
C ++では、関数をオーバーロードできます。ただし、オーバーロードが行われない場合もあります。このセクションでは、関数をオーバーロードできないさまざまなケースについて説明します。
-
関数のシグネチャが同じである場合、戻り値のタイプのみが異なるため、関数をオーバーロードすることはできません。
int my_func() { return 5; } char my_func() { return 'd'; }
-
メンバー関数がクラス内で同じ名前と同じパラメーターリストを持っている場合、それらをオーバーロードすることはできません。
class My_Class{ static void func(int x) { //Something } void func(int x) { //something } };
-
パラメータ宣言の場合、ポインタ*と配列[]のみが異なります。
int my_func(int *arr) { //Do something } int my_func(int arr[]) { //do something }
-
パラメータ宣言が、定数または揮発性修飾子が存在する場合にのみ異なる場合。
int my_func(int x) { //Do something } int my_func(const int x) { //do something }
-
パラメータ宣言の場合、デフォルトの引数のみが異なります。
int my_func(int a, int b) { //Do something } int my_func(int a, int b = 50) { //do something }
-
main()をC ++でオーバーロードできますか?
C ++では、関数のオーバーロードを使用できます。ここで、main()関数もオーバーロードできるかという疑問が浮かびます。 アイデアを得るために1つのプログラムを見てみましょう。 例 #include <iostream> using namespace std; int main(int x) { cout << "Value of x: " << x << "\n"; return 0; } int main(char *y) { &n
-
C++でオーバーロードできない演算子
などの一部の演算子をオーバーロードできます。ただし、initの演算子をオーバーロードすることはできません。一部の演算子はオーバーロードできません。これらの演算子は次のようなものです ? 「。」メンバーアクセスまたはドット演算子 ? 「? :”三項演算子または条件演算子 ? 「::」スコープ解決演算子 ? 「。*」メンバー演算子へのポインタ ? 「sizeof」オブジェクトサイズ演算子 ? 「typeid」オブジェクト型演算子 これらの演算子は、オーバーロードすると深刻なプログラミングの問題が発生するため、オーバーロードできません。 たとえば、sizeof演算子は、オブジェクトまたはデー