我有一些类Foo和记录仪:如何用C++中的引用成员创建一个数组?
class Logger{/* something goes here */};
class Foo{
Foo(Logger& logger);
Logger& logger;
}
Foo::Foo(Logger& logger) : logger(logger)
{}
现在我想创造一个所有引用Foo::logger
应该指向同一个对象Logger
类Foo的对象的数组。我想是这样(我需要堆栈和堆分配):
Logger log (/* parameters */);
Foo objects [3] (log); // On stack
Foo* pObjects = new Foo [3] (log); // On heap
的问题是,这两个版本的尝试调用默认的构造函数Foo()
这是不存在的。也据我所知,不可能改变引用的引用变量。所以临时调用默认的构造函数和稍后的循环也没有帮助。
那么:什么是正确的做法呢?我需要使用指向Logger
对象的指针吗?
要确定我理解你:你的意思是一些静态成员的所有对象?那么如何初始化它呢?或者一个单独的对象/全局变量/ ...? – 2012-04-04 14:11:33
他意味着你的代码中的任何地方都可以访问的单例类。这是记录器的常用方式。 – giorashc 2012-04-04 14:33:20