我是c ++的新手,我试图让一个有一个方法的类自我实例。这就是我试图实现的目标。
Class A {
public:
std::vector<int>* getData(){return &data;}
// I need to merge the data from 2 class, so in my code
//I can call p.merge(c) where p&c instance of A
void Merge (A* ptr) {
data = ptr->getData()->data;
}
private:
std::vector<int> data;
}
知道如何进行合并功能。
答案 0 :(得分:0)
data = ptr->getData()->data;
在上面一行中,data
是std::vector<int>
。 ptr->getData()
的返回值为std::vector<int> *
。
后者没有名为data
的成员。
所以你可能想用
替换那一行data = *ptr->getData();
或
data = ptr->data;
另请注意,如果您希望合并数据而不是替换数据,则需要使用其他方法:
data.insert(data.end(), ptr->data.begin(), ptr->data.end());