C ++オブジェクト構文を作成するために-----
1スタックにMyClassを作成します。
ヒープブラケットのMyClass * A =新しいMyClassの()で作成した2。
ブラケットのMyClass * A =新しいMyClassのなし3。
4つの.--------------- MyClassの();引数なしMyClassのタイプの関数の戻り値を宣言する。
1の#include <iostreamの> 2 クラスMyClassの 3 { 4 公共: 5つの MyClassの() 6 { 7 のstd :: COUT << " !ハローMyClassの" << はstd :: ENDL。 8 } 9つの MyClassの(int型NUM(I):I) 10 { 11 のstd :: COUT << " !ハローMyClassの------ INT " << はstd :: ENDL。 12 } 13 14 空隙MyMethodは() 15 { 16 STD :: COUT << " 出力メンバーシップNUM:" << << NUM STD :: ENDL; 17 } 18である 19。 プライベート: 20である INT NUM; 21である }; 22は、 INT (メイン) 23である { 24 // ---- -----------のコンストラクタを呼び出す 25 ; MyClassのC1 // 引数なしで表示コンストラクタ、またはパラメータがデフォルトコンストラクタを持っています。 26は、 MyClassのC2(); // 引数なしのコンストラクタと呼ばれていない、それぞれの場合において、関数の宣言は、型MyClassの唯一の値を返しがある 27 (MyClassのC3を1); //はコンストラクタパラメータINT呼び出し 28 / *---------------カッコ内の新しいキーワードの場合と差は---括弧されていない 29 カスタムタイプの場合1を、違いはありません、デフォルトのコンストラクタを使用している 30 2内蔵型初期化されるブラケット用 31である * / 32 STD :: COUT << STD :: ENDL; 33は、 MyClassの* C4 = 新しい新; MyClassの() 34は、 >でC4- )MyMethodは(; 35の MyClassの* = C5 新しい新しい MyClassの(1。); 36 C5-> MyMethodは(); 37 [ MyClassの= C6 * 新しい新しいMyClassの、 38である C6-> MyMethodは(); 39 40 // 内蔵型 41は、 STD :: << COUTstd ::てendl; 42 INT * pint1 = 新しい INT(1 )。 43 INT * pint2 = 新しい int型(); 44 INT * pint3 = 新しい int型; 45 46 のstd :: coutの<< * pint1 << " " << * pint2 << " " << * pint3 << はstd ::てendl; 47 リターン 0 ; 48 }
出力:
結論:ビルトインタイプの新しいオブジェクトのキーワードを作成するときのために:大括弧は、括弧なしで、初期化されますが初期化されていない、カスタム型のためには何の違いをデフォルトコンストラクタを呼び出していない、プラス括弧なします。