是否可以定义一个仅对类的静态成员进行操作的静态插入运算符?就像是:
class MyClass
{
public:
static std::string msg;
static MyClass& operator<< (const std::string& token) {
msg.append(token);
return *this; // error, static
}
};
或者:
static MyClass& operator<< (MyClass&, const std::string &token)
{
MyClass::msg.append(token);
return ?;
}
这就是我想使用它的方式:
MyClass << "message1" << "message2";
谢谢你!
在你的情况下我可能会做的是创建另一个类来重载operator<<
,然后创建该类型的静态成员。像这样:
class MyClass
{
public:
static std::string msg;
struct Out {
Out & operator<< (const std::string& token) {
MyClass::msg.append(token);
return *this;
}
};
static Out out;
};
使用它不是quite你要求什么,但我认为足够接近:
MyClass::out << "message1" << "message2";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)