使用同一类实例的C++类方法 我是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; }

使用同一类实例的C++类方法 我是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; },c++,c++11,C++,C++11,你知道怎么做合并功能吗 data = ptr->getData()->data; 在上面的行中,数据是一个std::vector。ptr->getData的返回值是std::vector* 后者没有名为data的成员 所以你可能想用 data = *ptr->getData(); 或 还请注意,如果希望合并而不是替换数据,则需要使用不同的方法: data.insert(data.end(), ptr->data.begin(), ptr->data.end())

你知道怎么做合并功能吗

data = ptr->getData()->data;
在上面的行中,数据是一个std::vector。ptr->getData的返回值是std::vector*

后者没有名为data的成员

所以你可能想用

data = *ptr->getData();

还请注意,如果希望合并而不是替换数据,则需要使用不同的方法:

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

你是在问如何使一个方法获取它自己的类的一个实例,还是在问如何编写一个合并函数;如果您想要副本,请声明副本;如果需要引用a&a或常量a作为常量值的引用。但是如果你收到一个副本或引用,你必须使用a.,而不是a->调用getData。那么如果我使用void Merge a*ptr,我如何复制向量呢?data=ptr->getDtat->data;不工作?数据+=ptr->data;
data.insert(data.end(), ptr->data.begin(), ptr->data.end());