C++ 如何正确过载<&书信电报;操作人员
我正在编写自己的integer类,它可以处理任何大小的整数。到目前为止,我已经成功地重载了以下操作符:C++流中的=、+、-*、、、、、、、、、>C++ 如何正确过载<&书信电报;操作人员,c++,integer,operator-overloading,operators,outputstream,C++,Integer,Operator Overloading,Operators,Outputstream,我正在编写自己的integer类,它可以处理任何大小的整数。到目前为止,我已经成功地重载了以下操作符:C++流中的=、+、-*、、、、、、、、、> std::cout << a; std::cout 我怎样才能像你一样设置操作员呢。这是重载的正确操作符(假设它不是您的类的成员。)“但是如果我想将某些内容流式传输到我的对象中,这似乎是适用的。(也就是说,如果你把它弄对了,它就在左边。它是operator@xcdemon05好的,您可能将其声明为成员。它应该是非成员。@xcdemon0
std::cout << a;
std::cout
我怎样才能像你一样设置操作员呢。这是重载的正确操作符(假设它不是您的类的成员。)“但是如果我想将某些内容流式传输到我的对象中,这似乎是适用的。(也就是说,如果你把它弄对了,它就在左边。它是operator@xcdemon05好的,您可能将其声明为成员。它应该是非成员。@xcdemon05就像juanchopanza所说的,它应该是非成员函数,但请注意,您仍然可以通过将其设置为朋友非成员函数,直接在类中定义它不客气。
std::ostream& operator<<(std::ostream& os, const T& obj)
{
// Write obj to stream
return os;
}
std::cout << a;
operator<<(std::cout, a);
std::ostream& operator<<(std::ostream& os, const int &a);
std::cout << myBigInt;
operator<<(cstd::cout, myBigInt);
os << obj; // os is an ostream; obj is a T
std::ostream& operator<<(std::ostream& os, const T& obj)
{
// write obj to stream
return os;
}