簡體   English   中英

命名空間內的C ++ Singleton,如何調用內部方法?

[英]C++ Singleton inside a namespace, how can I call methods inside?

將Singleton類放在命名空間中也許沒有意義,但是今天一位同事問這在語法上是否正確,我不知道。

// Singleton.h
namespace MySpace
{
    class Singleton
    {       
    public:
        static Singleton& GetInstance()
        {
            static Singleton instance;    
            return instance;
        }

        void ShowMessage(); 
    };
}

// Singleton.cpp
#include "Singleton.h"

namespace MySpace
{
   void Singleton::ShowMessage()
   {
       std::cout << "I'm being called!";
   }
}

我如何嘗試調用函數“ ShowMessage()”,但在VS2010上顯示此錯誤:錯誤C2143:語法錯誤:缺少';' 在“。”之前

// Incorrect syntax
MySpace::Singleton.GetInstance().ShowMessage();

調用ShowMessage()的正確語法是什么?

MySpace::Singleton是一個類,因此您需要使用范圍運算符::而不是. 訪問GetInstance

MySpace::Singleton::GetInstance().ShowMessage();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM