C++でオーバーロードできない演算子
C ++では、+、-、[]、->などの一部の演算子をオーバーロードできます。ただし、initの演算子をオーバーロードすることはできません。一部の演算子はオーバーロードできません。これらの演算子は次のようなものです
- ? 「。」メンバーアクセスまたはドット演算子
- ? 「? :”三項演算子または条件演算子
- ? 「::」スコープ解決演算子
- ? 「。*」メンバー演算子へのポインタ
- ? 「sizeof」オブジェクトサイズ演算子
- ? 「typeid」オブジェクト型演算子
これらの演算子は、オーバーロードすると深刻なプログラミングの問題が発生するため、オーバーロードできません。
たとえば、sizeof演算子は、オブジェクトまたはデータ型のサイズをオペランドとして返します。これは、コンパイラによって評価されます。実行時に評価することはできません。したがって、オーバーロードすることはできません。
-
C++でオーバーロードできない関数
関数のオーバーロードは、メソッドのオーバーロードとも呼ばれます。関数のオーバーロードは、オブジェクト指向プログラミングで広く使用されているポリモーフィズムの概念によって提供される機能です。 関数のオーバーロードを実現するには、関数がこれらの条件を満たす必要があります- 関数の戻りタイプは同じである必要があります 関数の名前は同じである必要があります パラメータはタイプが異なる場合がありますが、数は同じである必要があります 例 int display(int a); int display(float a); // both the functions can be ov
-
C++で交差しないハンドシェイク
円の周りに立っているn人が偶数で、各人が他の人と握手しているとすると、合計n/2回の握手があります。どのハンドシェイクも交差しないように、これらのハンドシェイクが発生する可能性のある方法の数を見つける必要があります。答えは非常に大きい可能性があるため、答えmod 10 ^ 9+7を返します。 したがって、入力がn =2の場合、出力は1になります これを解決するには、次の手順に従います- m:=10 ^ 9 + 7 サイズ(n + 1)の配列dpを定義します dp [0]:=1 初期化i:=0の場合、i <=nの場合、更新i:=i + 2、do −