采用相同类的实例的C ++类方法

时间:2018-02-04 22:10:54

标签: c++ c++11

我是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;

}

知道如何进行合并功能。

1 个答案:

答案 0 :(得分:0)

data = ptr->getData()->data;

在上面一行中,datastd::vector<int>ptr->getData()的返回值为std::vector<int> *

后者没有名为data的成员。

所以你可能想用

替换那一行
data = *ptr->getData();

data = ptr->data;

另请注意,如果您希望合并数据而不是替换数据,则需要使用其他方法:

data.insert(data.end(), ptr->data.begin(), ptr->data.end());