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

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

在上面的代码中,我在构造函数的第二行(b = new int*[10])得到一个编译错误。int**' to它说错误: int * [0u]'分配中的类型不兼容

为什么会这样?

4

1 回答 1

2

您不能分配给数组;您可以初始化它或分配给它的成员。无论如何,您的b成员都是无效的,因为拥有大小为 0 的数组是非法的;该语法T b[]只能在立即提供聚合初始值设定项以允许编译器推断数组长度的情况下使用。

于 2012-10-16T10:21:52.323 回答