我得到了一个特定的主要
int main() {
Widget w;
w.set(3).print().set(2).print();
w.print();
}
并且我需要编写一个类 Widget,以便程序打印 3,2,2。
我最好的尝试 sofar 打印出令人失望的 3,2,3 :/
class Widget{
public:
Widget(){m_i =0;};
Widget(int i){m_i =i;};
Widget set(int i){
this->m_i = i;
return *this;
};
Widget print(){
std::cout<<this->m_i<<std::endl;
return *this;
};
int m_i;
};
int main() {
Widget w;
w.set(3).print().set(2).print();
w.print();
}
关于如何解决这个问题的任何想法?
感谢所有愿意提供一些建议的人:)
最佳答案
您缺少的是从您的函数返回的对象需要是一个引用,例如一个 Widget&
,而不是一个 Widget
。目前,您从每个 set() 或 print() 调用返回一个全新的拷贝,这意味着对该对象的任何进一步更改都不会应用于原始 w
对象。
关于c++ - 实现链接方法时打印的错误值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55361503/