如何传递this
给operator<<
在C++类?或者我只是做错了(可能).
例如,在下面的类中,我只有一个循环重复请求并打印一个整数.但是,cout<
#includeusing std::cout; using std::endl; using std::cin; class C { int n; public: C(int n) : n(n) {}; friend std::ostream& operator<<(std::ostream&, const C&); void set_n(int i) { n = i; } void play() { int input; while (true) { cout << this; cin >> input; set_n(input); } } }; std::ostream& operator<<(std::ostream& os, const C& c) { cout << c.n << "\n"; return os; } int main(int argc, char *argv[]) { C c = C(1); c.play(); return 0; }
aschepler.. 5
this
是一个指针.你需要
cout << *this;
此外,您的定义operator<<
应该使用参数os
而不是总是使用cout
.
this
是一个指针.你需要
cout << *this;
此外,您的定义operator<<
应该使用参数os
而不是总是使用cout
.