This question already has answers here:
How to define a static operator<<?
(4个答案)
6年前关闭。
假设我有一个名为“ Logger”的类。名称是不言自明的,它记录东西。我有一个静态方法,它记录东西(Logger :: log(string msg))。
我想重载运算符<
我试图这样做,但是不能。我管理的是:
...
我想做什么可能?如果是的话,怎么办?
先感谢您 :)
logger.cpp:
用法:
当心全局初始化问题;虽然;查看您
(4个答案)
6年前关闭。
假设我有一个名为“ Logger”的类。名称是不言自明的,它记录东西。我有一个静态方法,它记录东西(Logger :: log(string msg))。
我想重载运算符<
Logger << "AW YEAH, I LOVE C++";
我试图这样做,但是不能。我管理的是:
Logger l;
l << ":(";
...
我想做什么可能?如果是的话,怎么办?
先感谢您 :)
最佳答案
重载的运算符将根据值而不是类型进行操作。
也许您应该重命名您的类,然后创建一个合适的全局对象。例如:
logger.h:
class mylogger { /* ... */ };
extern mylogger logger;
logger.cpp:
#include "logger.h"
mylogger logger;
用法:
#include "logger.h"
logger << "Done";
当心全局初始化问题;虽然;查看您
std::cout
的实现以解决此问题(例如,使用Schwartz计数器)。关于c++ - 是否可以像这样重载operator <<? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20293853/