int k[] ={1,2,3,4,5};
第二:これら二つの文のための
struct slk
{
int k[] ={1,2,3,4,5};
};
、最初のものは、コンパイルが、二番目の弾力を通過しない理由私
error:too many initializers for 'int [0]'. the compilation would passed if I set k[5];
このエラーメッセージは何を意味しますか?注:GNU GCCバージョン4.7.2でテストされたコード
メンバーのインライン初期化は、まったく別のボールゲームです。あなたの最初のサンプルに直接相当するものを取得するには、_member初期化リストのメンバを初期化する必要があります(ただし、2番目のサンプルと同じようにインラインで行うことはできます)。 –
これは 'int k [5] = {1,2,3,4,5}; 'で動作するようですが、理由を説明できません。 – ValarDohaeris
@ValarDohaeris、それは「それはクラスでそれを行うには大きさが必要です」ということです。 IIRCでは、標準に明示的なルールがあります。 – chris