我如何使用cout << myclass
myclass
是我写的C ++类,当我写:
myclass x; cout << x;
如何输出10
或20.2
,如integer
或float
值?
通常通过重载operator<<
您的类:
struct myclass { int i; }; std::ostream &operator<<(std::ostream &os, myclass const &m) { return os << mi; } int main() { myclass x(10); std::cout << x; return 0; }
你需要重载<<
运算符,
std::ostream& operator<<(std::ostream& os, const myclass& obj) { os << obj.somevalue; return os; }
然后当你做cout << x
(其中x
在你的情况下是myclass
types),它会输出你在方法中告诉它的任何东西。 在上面的例子中,它将是x.somevalue
成员。
如果成员的types不能直接添加到一个ostream
,那么你也需要重载该types的<<
运算符,使用与上面相同的方法。
这很容易,只是执行:
std::ostream & operator<<(std::ostream & os, const myclass & foo) { os << foo.var; return os; }
你需要返回一个对os的引用来链接outpout(cout << foo << 42 << endl)