我在谷歌上找到的所有内容都可以为您的课程添加流兼容性,以便您可以
std::cout << myClassInstance;
但我对此不感兴趣,我想做的是
myClassInstance << "stuff here";
那叫做什么手术?
答案 0 :(得分:1)
重载<<
运算符?这在技术上是一个位移操作符,但它可能更常用作流操作符。
并不是说恕我直言。我想它看起来不错,但我认为函数调用运算符更合乎逻辑。
template <typename T>
MyClassType& MyClassType::operator<<(const T& rhs)
{
do_something_vague_and_unclear_because_there_is_no_MCVE(rhs);
return *this;
}
您很可能必须对特定参数类型使用不同的重载,而不是模板函数。
MyClassType& MyClassType::operator<<(const std::string& str)
{
//...
}
MyClassType myClassInstance;
myClassInstance << "Hello, world!";