0
class MyClass
{
    int **a;
    int *b[];

    MyClass()
    {
        a = new int*[10];
        b = new int*[10];
    }
};

上記のコードでは、コンストラクター内の 2 行目 (b = new int*[10]) でコンパイル エラーが発生します。エラー: int**' toint*[0u] の割り当てに互換性のない型があります。

なぜそうなのですか?

4

1 に答える 1

2

配列に割り当てることはできません。それを初期化するか、そのメンバーに割り当てることができます。bサイズ0の配列を持つことは違法であるため、メンバーはとにかく無効です。この構文T b[]は、コンパイラが配列の長さを推測できるように、集計初期化子がすぐに提供される場合にのみ使用できます。

于 2012-10-16T10:21:52.323 に答える