class base {
public:
base a;
};
これは、コンパイルエラーになります。 static
クラスメンバーがstatic
がうまくいく理由です、クラスのインスタンスに格納されていないので、このコードのに対しクラスはなぜ静的メンバーを持つことが許されますが、非静的メンバーは持てませんか?
class base {
public:
static base a;
};
は、コンパイルエラーに
class base {
public:
base a;
};
これは、コンパイルエラーになります。 static
クラスメンバーがstatic
がうまくいく理由です、クラスのインスタンスに格納されていないので、このコードのに対しクラスはなぜ静的メンバーを持つことが許されますが、非静的メンバーは持てませんか?
class base {
public:
static base a;
};
は、コンパイルエラーに
を与えるものではありません。右、無限の大きさ -
ランタイムを壊すのと同じタイプの別のオブジェクト内のオブジェクトを保存しますか?
sizeof
何を返すのでしょうか?オブジェクトのサイズはコンパイラによって認識される必要がありますが、同じタイプのオブジェクトが含まれているため意味がありません。
私はエラーを推測しているが
フィールド静的でないとき、クラス
A
が完全に閉じ括弧まで定義されていないため、「」これは、不完全な型
ですしているようなものです。一方、静的メンバ変数は、クラスが完全に定義された後で別個の定義ステップを必要とするため、それらが動作します。
宣言との定義の違いを検索してより詳細な説明を得てください。
自体はその後に「追加」するための「リマインダーを設定」のコンパイラの並べ替えができませんでした...クラスのようなあなたを聞いたことありますか?限界は何ですか? –
@AssafLevyオブジェクトのサイズはどのくらいでしょうか。 'Base'は' Base'が含まれている 'Base'を、含まれています... –
@JamesKanze ..お互い対向する2つのミラーの並び替えは、おかげでそれを手に入れました! –
{静的Bをストラクト。 } a :: b; –
はあなたがちょうど私O_O –
ヨ犬頭痛を与えたJohannesSchaub - litb @、私は – Matthew