#include <iostream>
using namespace std;
class Foo {
int i;
int * p = new int;
*p = 5; // This doesn't worl
// If I instead use int * p = new int(5); it works.
};
なぜですか?私はこれがクラス内でのみ発生することがわかります、もし私がそれが動作するはずのメイン関数に同じコードを書くならば。クラス内の変数に値を代入できません
有効でないものは有効な構文ではありません。 –
このような式は関数内にある必要があるためです。 –
一つは 'p'の初期化であり、もう一つは' * p'への代入です。ブロックスコープ外では初期化のみが許可されます。 – StoryTeller