我在头文件中声明了一个类,其中我有以下2D向量:
<string-array name="navigation_drawer_items_array">
<item>Home</item>
<item>My Collections</item>
<item>Pending Collections</item>
<item>Recive Cash</item>
<item>New Registration </item>
<item>Collection History</item>
<item>Log Out</item>
</string-array>
然后在我的.cpp文件中的这个类的构造函数中,我执行以下操作:
std::vector< std::vector<int> > inputPatterns;
但是,现在这个类的成员函数无法访问这个2D向量。我认为这是因为我在构造函数中重新声明了它,但我不知道该怎么做。
所以我的问题是,如何在头类中正确声明2D向量,然后在.cpp文件中(在构造函数或成员函数中)初始化它,以便我可以在任何地方访问它?
答案 0 :(得分:1)
您正在声明一个新的局部变量,填充它,然后一旦控件退出构造函数范围就会死亡。因此,您实际上没有填充对象的成员变量,而是填充了在构造函数完成执行时死亡的其他变量。
您需要做的是使用类的现有成员变量,并且改进代码并使其更易读/可理解的最佳方法是使用this
指针,如下所示:< / p>
nInputPatterns = 4;
// means not any inputPatterns, it is explicitly the member variable inputPatterns of "this" current object / instance
this->inputPatterns(nInputPatterns, vector<int>(2));
// ..
答案 1 :(得分:0)
我的问题的答案似乎是使用inputPatterns.assign(nInputPatterns,vector(2));所以不是这个 - &gt;。谁能解释我为什么?