gpt4 book ai didi

c++ - 如何在 C++ 中为固定大小的二维数组字段编写 get 方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:28 25 4
gpt4 key购买 nike

<分区>

我需要编写一个包装类,为数据类的字段提供“get”方法。但是,我不知道编写“getter”以返回二维数组的语法。例如:

#include <iostream>

class Data {
public:
double array[2][2];
};

class Wrapper {
private:
Data* dataptr;
public:
Wrapper(Data* data) : dataptr(data) {}

// compile error: "cannot convert ‘double (*)[2]’ to ‘double**’ in return"
double** getarray() { return dataptr->array; }

// compile error: "‘getarray’ declared as function returning an array"
//double* getarray()[2] { return dataptr->array; }

// this works, but what is auto resolved to?
//auto getarray() { return dataptr->array; }
};

int main() {

Data d;
d.array[0][0] = 1;
d.array[0][1] = 2;
d.array[1][0] = 3;
d.array[1][1] = 4;

Wrapper w(&d);
auto arr = w.getarray();
return 0;
}

我知道这是可能的,因为我将方法返回类型设置为 auto 并且它按预期编译和运行。但是我不知道如何编写具有显式返回类型的方法。

在我的真实示例中,我无法修改 Data 类,因此无法切换到使用 std::vector。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com