C ++の牛が質問day29をはねのけます

1.関数呼び出しが入れ子にではなく、定義を入れ子にすることができます。

デストラクタ派生クラスを呼び出す派生オブジェクト(非イルのクラスへのポインタ)をこのベースクラスのデストラクタを呼び出す削除しない仮想関数、場合2.。派生クラスオブジェクト(基本クラスへのポインタ)を削除するだけで基本クラスのデストラクタを呼び出します。(基本クラスへのポインタ)のオブジェクト(非イルのクラスへのポインタ)を削除し、派生オブジェクトを削除デストラクタ派生クラスが呼び出される派生クラスの仮想関数は、基礎クラスのデストラクタを呼び出します。

typeパラメータのような他の一般的な変数として3.モード引数の結合に関与タイプを決定します。パラメーターが参照型である場合、このパラメータは引数に結合され、引数がエイリアスになり、パラメータ参照型ではない場合には、引数の値がコピーされ、パラメータが与えられます。

パラメータが参照型である場合には、我々は、対応する引数は、「参照渡し」されるか、現在の関数があると言う「参照による呼び出し。」一般的な参考文献として、参照パラメータは、それが結合引数の別名です。
引数がコピーされ、パラメータが与えられると、次に実際のパラメータとは、2つの独立したオブジェクトになる、方法を分けました。私たちは、この引数は「値の転送」であるか、現在の関数であることを言う「コールの値。」
挙動ポインタパラメータ参照型と任意の不均一。私たちは、ポインタをコピーすると、ポインタの値が実際にコピーされたアドレスに格納されています。コピーした後、二つのポインタなしの接続は、2つの独立したポインタになります。
4。
class Empty{
public:
    Empty(); // 缺省构造函数//
    Empty( const Empty& ); // 拷贝构造函数//
    ~Empty(); // 析构函数//
    Empty& operator=( const Empty& ); // 赋值运算符//
    Empty* operator&(); // 取址运算符
    const Empty* operator&() const// 取址运算符 const
};
これらは、デフォルトの空のクラスによって生成されます。
5. 。?「外では、C ++のすべての演算子:一般的な関係演算子、メンバーポインタ演算子、スコープ演算子「::」、はsizeofオペレータと三項演算子に加えて「」「*」」オーバーロードされます
しかしながら=、()、[]、 - > 4級フレンド機能を過負荷になりません。
異なる6. C ++、C言語は、次に可変ポインタポイントを定義するために、Cの構造体Cの定義で直接使用することはできないが、構造体のキーワードを追加する必要があります。C ++は持っていなかったでしょう。
7。
  • 一般的に、クラス最高の単項オーバーロードされたメンバ関数は、バイナリ演算子はオーバーロードクラスのフレンド関数が好ましいです。
  • > - 、[]、=、():ここではいくつかの二項演算子がクラスのフレンド関数をオーバーロードすることはできませんです。
  • 型変換関数は、クラスのメンバー関数として定義することができるクラスのフレンド関数として定義することができません。動作中の変換を達成するためにreinterpret_castは(コンパイル時に変換を達成するために)、const_castを(コンパイル時に変換を達成するために)、stactic_cast(コンパイル時に変換を達成するために)、dynamic_castを(、および変換の成功を返すことができます:C ++は、変換関数の4種類を提供しますロゴ)。
  • オブジェクトの動作状態を変更する必要があるのオペレータ場合、好ましくは、過負荷メンバ関数を選択しました。
  • オペランドに必要な事業者(特に最初のオペランド)は、暗黙の型変換、のみ選択したフレンド関数をしたい場合。
  • オペレータ関数はメンバ関数、左端(または唯一の左端のオペランド)である場合、クラスオブジェクト・クラス・オペレータ(またはクラス・オブジェクトへの参照)でなければなりません。左のオペランドが異なるタイプのオブジェクト、またはオブジェクトの内部型でなければならない場合、オペレータ機能は、フレンド関数として実現されなければなりません。
  • 演算子をリロードする必要が互換性を持っている場合は、友人としてのオーバーロード関数を選択します。

8.問題のいくつかの時に出力文字列:

1:設定された出力比の文字列の長さの文字列の長さの実際の長さに大きな。
2:文字列の長さは、右詰め、左のスペースを埋めるために、出力文字列の長さよりも小さく設定されています。
C ++プレミア9.関数ポインタがプラス非常に明確に書かれて、関数ポインタは直接F1(S)も使用することができます(* F1)を使用することができます(複数可)。
10.いくつかのメモテンプレート
テンプレートの宣言と定義は、テンプレートをインスタンス化するときに、コンパイラは、テンプレートの正確な定義だけでなく、その文を見なければならない.hの理由と.cppファイルを別々に配置することはできません。()関数がメインで.hファイルが含まれている場合、コンパイラは、.cppファイルは、.hファイルが含まれていますので、()がメインで.cppファイルが含まれている、テンプレートの正確な定義を知ることができないことにより、そのように主な機能は、クラスを定義して宣言することになります含まれている.cppファイルが中に含まれており、コンパイラは、正確な性質に定義されたテンプレートを見つけることができます。(メイン関数に引用)。

おすすめ

転載: www.cnblogs.com/Tonarinototoro/p/11607274.html