list_sorter add(std::list<typeOfList> &list){
list_num++;
lp.insert(lp.end(), list.begin(), list.end());
lp.sort();
list.clear();
std::cout << list_num << std::endl;
return *this;}
我在类模板中有这个小方法,主要是这样调用它的:
si.add(lc).add(lb);
两次执行时,都会计算出增加的 list_num,但在第二次 add() 之后,它不会被保存。这是为什么?
最佳答案
add
按值返回,这意味着它将返回一个从 *this
复制的新临时 list_sorter
,并且该临时值没有任何内容处理原始对象。
您可以将其更改为按引用返回。即
list_sorter& add(std::list<typeOfList> &list){
list_num++;
lp.insert(lp.end(), list.begin(), list.end());
lp.sort();
list.clear();
std::cout << list_num << std::endl;
return *this;
}
关于c++ - 在方法上调用方法 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44688287/