[英]C++ Accessing class variable from another class
I have a class called MineData:我有一个名为 MineData 的类:
class MineData {
private:
int row = 10;
int col = 20;
public:
MineData() {
std::vector<std::vector<int>> data (col, std::vector<int>(row, 0));
}
}
and I have a class called Grid:我有一个名为 Grid 的类:
class Grid : public QWidget {
MineData mineData;
QPushButton *btn = new QPushButton(mineData.data, this);
}
so I want to access the data variable in Grid class from MineData class, but when I do所以我想从 MineData 类访问 Grid 类中的数据变量,但是当我这样做时
mineData.data
I get an error:我收到一个错误:
class 'MineData' does not have 'data' member
“MineData”类没有“数据”成员
What am I doing wrong?我究竟做错了什么?
You have currently declared data
as a local variable in MineData
's constructor.您当前已在
MineData
的构造函数MineData
data
声明为局部变量。 Instead, you need to make it a member variable.相反,您需要将其设为成员变量。 Then, you can instantiate it in the initializer list.
然后,您可以在初始化列表中实例化它。
class MineData {
private:
int row = 10;
int col = 20;
public:
vector<vector<int>> data;
MineData(): data(col, vector<int>(row, 0)) { }
};
The vector data
needs to be added as a class field.需要将矢量
data
添加为类字段。 Now it is constructed in the MineData
class constructor as a temporary variable and it is removed after the constructor function is finished.现在它在
MineData
类构造函数中作为临时变量构造,并在构造函数完成后将其移除。
class MineData {
private:
int row = 10;
int col = 20;
public:
MineData() {
data.resize(col, std::vector<int>(row, 0));
}
std::vector<std::vector<int>> data
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.