C++の次の2行のコードの違いは何ですか?新しいキーワードのないC++のポインタへのポインタ
行1:
MyClass ** objects = new MyClass * [Number];
回線2
MyClass * objects [Number];
C++の次の2行のコードの違いは何ですか?新しいキーワードのないC++のポインタへのポインタ
行1:
MyClass ** objects = new MyClass * [Number];
回線2
MyClass * objects [Number];
LINE1は、オブジェクトへのポインタへのポインタを定義し、それが初期化を含んでいます。 2行目(line2)は、オブジェクトへのポインタの配列を定義します。この配列は決して初期化されません。
初期化すると、オブジェクトに初期値を与えることを意味しますか? – Admia
いいえ、MyClassオブジェクトではありません。 Line1では、初期化後のあなたの変数 'objects'はいくつかのポインタ(pointresの配列)を指し始めるようになります。この配列の要素は初期化されません。 –
これは確かにC++ですか? – BufBills
@BufBillsなぜそうではありませんか? – melpomene
これは総称的な質問です。 'new'演算子が何をしているのか、どのようにオブジェクトがあるのかを知るには、[C++言語のあなたの好きな本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)自動保存期間が割り当てられ、ポインタがどのように機能するかを示します。 –