C++筆記試験問題易誤点まとめ(クラスと対象)


1、コンストラクション関数の意味:(1)クラスの一部のメンバーがプライベートであるため、プログラムが初期化する必要がある場合は、メンバー関数のみで実現する.(2)オブジェクトを宣言するときにコンストラクション関数を自動的に呼び出す.
2、コンストラクション関数には戻り値はありませんが、voidとして宣言されません.つまり、宣言タイプはありません.
3、クラスオブジェクトを作成するたびに(newを使用してメモリを動的に割り当てる場合でも、C++はコンストラクション関数を使用します)
4、オブジェクトを使用してコンストラクション関数を呼び出すことはできません.コンストラクション関数がオブジェクトを構築するまで、オブジェクトは存在しません.
5、ユーザーは自分でコンストラクション関数を定義していないので、オブジェクトを宣言するときにデフォルトのコンストラクション関数が呼び出されます.コンストラクション関数を宣言すると、コンパイラはデフォルトのコンストラクション関数を提供しなくなり、自分で提供する必要があります.そうしないと、コンパイルエラーが発生します.
6、コンストラクション関数は再ロードできます.すなわち、複数のコンストラクション関数を同時に持ち、呼び出しに応じて対応するコンストラクション関数を一致させることができます.
7、構造関数にはパラメータがありません.
8、解析関数を呼び出すタイミングはコンパイラによって決定され、通常はコードで明示的に呼び出されない.(1)静的オブジェクトはプログラム終了時に自動的に呼び出される.(2)動的オブジェクトはコードブロックの実行終了時に呼び出される.(3)new作成オブジェクトはスタックまたはフリーストレージ領域に存在し、deleteを使用してメモリを解放する際に構造関数を呼び出す.
9、コンパイラはデフォルトの解析関数も提供します(プログラマが自分で定義していない場合).
10、main関数が終了するまでオブジェクトが続くと、main関数が終了した後も構造関数が呼び出されますが、ウィンドウ環境では構造関数の出力は表示されません.
11、2つのオブジェクトの間に値が割り当てられ、コンストラクション関数は呼び出されません.
12.コンパイラは、オブジェクトが既に存在し、コンストラクション関数を再度呼び出して値を再割り当てする場合、コンストラクション関数に新しい一時オブジェクトを作成させ、その内容を非ターゲットオブジェクトにコピーし、その後、コンストラクション関数を呼び出して一時オブジェクトを削除する.stock=Stock(1)のように,このプロセスは一次構造関数,一次構造関数を呼び出す.
13、構造関数を呼び出す順序:先に作成した後に削除する.
14.リストを使用して、対応するコンストラクション関数を初期化します.
15.コンストラクション関数に1つのパラメータしかない場合、オブジェクトをそのパラメータタイプと同じ値に初期化すると、コンストラクション関数が呼び出されます.例えば、A a=32;
16、デフォルトコンストラクション関数にはパラメータがなくてもよく、ある場合はすべてのパラメータにデフォルト値を指定する必要があります.
17、コンストラクション関数にnewが使用されている場合は、コンストラクション関数にdeleteを使用する必要があります.
18、オブジェクト配列を宣言すると、配列内の複数の要素がデフォルトのコンストラクション関数を何回呼び出すか.
19、オブジェクト配列を初期化するスキームは.まずデフォルトのスギの木を使用して配列要素を作成し、カッコ内のコンストラクション関数を使用して一時オブジェクトを作成し、一時オブジェクトの内容を対応する要素にコピーします.クラスオブジェクト配列を作成するには、デフォルトのコンストラクション関数が必要です.次のセグメントでは、6回のコンストラクション関数、6回のコンストラクション関数が呼び出されます.
Stock stocks[5] = {
    Stock("aa", 1),
    Stock(),
  }
stock[2] = Stock("bb",2);

20、クラス宣言に定義された関数は、自動的にインライン関数になります.クラス外実装でinline修飾を使用するのと同じです.
21、作成された各新しいオブジェクトには、内部変数とクラスメンバーを格納するための独自の記憶領域がある.ただし、同じクラスのすべてのオブジェクトは、クラスメソッドのセットを共有します.すなわち、各メソッドには1つのコピーしかありません.
22.クラス内バーストは、オブジェクトに格納されるのではなく、他の静的変数とともに格納されるstatic定数.したがって、static定数は1つしかなく、クラスのすべてのオブジェクトによって共有されます.
23、リロード演算子の左側は呼び出しオブジェクトで、右側は入力パラメータです.メンバー関数のリロードの演算子として、左側がクラスのオブジェクトである必要があります.
24、友元関数はクラス内で宣言され、クラスオブジェクトから呼び出すことができず、定義時に限定子とfriendを加えない.クラス宣言は、どの関数が友元であるかを決定します.演算子を友元に再ロードします.演算子の左側には他のタイプがあります.
25、<<演算子を再ロードし、ostreamの参照を返す必要があり、coutを連続的に出力することができます.具体的な原因はcoutメカニズムと関係があり、cout<
26、演算子を定義する場合、再ロードされた演算子をメンバー関数として選択するか、友元関数として選択する必要があります.