我在ClassA中创建了一个myOwnClass的二维数组
i18n-tasks-use
如何在另一个可以指向此数组的类(ClassB)中创建变量。
如果我定义了一维数组
class classA
{
public:
myOwnClass* myArray[2][16];
}
我可以像这样定义一个变量来保存数组myOwnClass* myArray[16]
,所以一维数组的一切工作都很好,但我无法使用二维数组。我试图将变量定义为myOwnClass** myArrayPointer
,但这显然不起作用。
答案 0 :(得分:2)
但我无法使用二维数组。我试图将变量定义为myOwnClass *** myArrayPointer,但这显然不起作用。
数组和指针是不同的东西,只有在最外层,数组才会衰减到指针。因此,在您的情况下,该变量的第二级类型不是指针,它是一个包含16个元素的数组。
使用此:
myOwnClass* (*my_another_var)[16] = some_instance.myArray;
答案 1 :(得分:2)
#include <array>
class ClassA
{
public:
// Give it a friendly name.
using MyArray_t = std::array<std::array<myOwnClass, 16>, 2>;
// Now you can use that name as if it were a type.
MyArray_t myArray;
};
class ClassB
{
ClassA::MyArray_t* arrayPtr = nullptr;
};
答案 2 :(得分:0)