我有一些類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