我有这个类和它的对象的二维数组:
class Foo
{
public:
Foo(int x)
{
value = x;
}
int value;
};
Foo foo1(1), foo2(2), foo3(3), foo4(4);
Foo* fooArray1[4][2] = { {&foo1, &foo2}, {&foo2, &foo3}, {&foo3, &foo4}, {&foo4, &foo1} };
现在我想引用这个数组的第二维。不知何故:
Foo* fooArray3[2] = fooArray1[2];
但是我的编译器一直告诉我:
Unallowed Assignment »Foo* (*)[2]« to »Foo* [2]«
我工作的唯一版本是:
Foo** fooArray2 = fooArray1[3];
但是对于这个版本,我必须使用星号运算符访问 fooArray2,我不想这样做:
cout << "fooArray2[0]: " << (*fooArray2)[0].value << " fooArray2[1]: " << (*fooArray2)[1].value << endl;