指向记录器类的指针提供所有其他类?

时间:2015-08-20 12:37:08

标签: c++ class pointers logging

我的C ++应用程序中有一个Logger类。这个类有公共方法,如writeDebug(std::string & str),可以写入调试输出文件,它对我很有用。该对象是在第一个主类的应用程序启动时创建的,并在那里存储为Logger * myLogger;对象。

由于我也有其他类,我也想为这些类提供这种日志记录功能。

目前我在其构造函数中将myLogger指针指向toher类,并且所有其他类在创建时都存储了这个相同的Logger指针 - >所有其他类都存储了Logger * myLogger 指针

Other_XY_Class::Other_XY_Class(Logger * logger, ...) 
: localLoggerPtr{logger} { //.. }

==> localLoggerPtr(在类Other_XY_Class中)== myLogger(在主应用程序类中)

我可以想象有一种更方便/更优雅的方式来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

由于您只有一个实例,为什么不使用Singleton?

这方面的事情:

class foo {
private:
   void bar();

   static foo Instance;

public:
  static void Bar() { Instance.bar(); }
}