Pie*_*o M 4 c++ static insertion operator-keyword
是否可以定义静态插入操作符,该操作符仅对类的静态成员进行操作?就像是:
class MyClass
{
public:
static std::string msg;
static MyClass& operator<< (const std::string& token) {
msg.append(token);
return *this; // error, static
}
};
Run Code Online (Sandbox Code Playgroud)
或者:
static MyClass& operator<< (MyClass&, const std::string &token)
{
MyClass::msg.append(token);
return ?;
}
Run Code Online (Sandbox Code Playgroud)
这就是我想用它的方式:
MyClass << "message1" << "message2";
Run Code Online (Sandbox Code Playgroud)
谢谢!
Ben*_*ley 10
在你的情况下我可能会做的是创建另一个重载的类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;
};
Run Code Online (Sandbox Code Playgroud)
使用它,是不是很你问什么,但足够接近,我认为:
MyClass::out << "message1" << "message2";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6305 次 |
| 最近记录: |