我是 C++ 菜鸟,所以我不明白为什么 Logger.cpp 中的行调用复制构造函数...
记录器.h:
class Logger {
public:
Logger();
~Logger();
};
Logger LOGGER;
记录器.cpp:
Logger LOGGER = Logger(); // Copy constructor here
最佳答案
语句 Logger()
创建一个匿名临时对象。
LOGGER = Logger()
将匿名临时对象复制到对象 LOGGER
中。拷贝 构造函数 避免了将 LOGGER
构造为临时拷贝以外的东西。
允许编译器优化掉这个拷贝,但这不是必须的。更多 here.
如果你想直接构造对象,就说Logger LOGGER;
。
关于c++ - 为什么这段代码会调用复制构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20662618/