91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c++怎么使用單例模式實現命名空間函數

發布時間:2023-05-05 15:42:31 來源:億速云 閱讀:217 作者:iii 欄目:開發技術

本篇內容介紹了“c++怎么使用單例模式實現命名空間函數”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

本案例實現一個test命名空間,此命名空間內有兩個函數,分別為getName()和getNameSpace();

  • 聲明命名空間及函數

namespace test{
    const std::string& getName()和();
    const std::string& getNameSpace();
}
  • 命名空間內實現單例類
    實現一個單例類,構造函數要為private,自身對象為private
    靜態成員函數(才可以調用靜態成員變量)

namespace test{
    // 實現一個單例類,構造函數要為private,自身對象為private
    class ThisNode{
    private:
        std::string name_;
        std::string namespace_;
        static ThisNode *thisNode;
        ThisNode():name_("empty"),namespace_("namespace"){};

    public:
        // 靜態成員函數(才可以調用靜態成員變量)
        /**
         * 函數:實例化類
         * 返回值:ThisNode&
        */
        static ThisNode& instance(){
            if(thisNode==nullptr){
                std::cout << "沒有" <<std::endl;
                thisNode = new ThisNode();
                return *thisNode;
            }else{
                std::cout << "有" <<std::endl;
                return *thisNode;
            }
        }
        // 普通成員函數
        const std::string& getName() const{
            std::cout <<"get name:"<<name_<<std::endl;
            return name_;
        }
        const std::string& getNameSpace() const{
            std::cout <<"getNameSpace:" << namespace_ << std::endl;
            return namespace_;
        }
    };
    // 初始化靜態成員
    ThisNode *ThisNode::thisNode = nullptr;

    // 實現命名空間內的函數,實例化一個類,并調用函數
    const std::string& getNameSpace(){
        return ThisNode::instance().getNameSpace();
    }
    const std::string& getName(){
        return ThisNode::instance().getName();
    }

};
  • 實現命名空間函數
    首先調用的是類的靜態成員函數實例化唯一對象,然后調用對象中的方法;

// 實現命名空間內的函數,實例化一個類,并調用函數
const std::string& getNameSpace(){
	return ThisNode::instance().getNameSpace();
}
const std::string& getName(){
	return ThisNode::instance().getName();
}
  • 調用

int main(){
    // 使用
    test::getNameSpace();
    test::getName();
    return 0;
}

c++怎么使用單例模式實現命名空間函數

全部代碼

#include<string>
#include<iostream>

// 聲明命名空間內的兩個函數
namespace test{
    const std::string& getName()和();
    const std::string& getNameSpace();
}

namespace test{
    // 實現一個單例類,構造函數要為private,自身對象為private
    class ThisNode{
    private:
        std::string name_;
        std::string namespace_;
        static ThisNode *thisNode;
        ThisNode():name_("empty"),namespace_("namespace"){};

    public:
        // 靜態成員函數(才可以調用靜態成員變量)
        /**
         * 函數:實例化類
         * 返回值:ThisNode&
        */
        static ThisNode& instance(){
            if(thisNode==nullptr){
                std::cout << "沒有" <<std::endl;
                thisNode = new ThisNode();
                return *thisNode;
            }else{
                std::cout << "有" <<std::endl;
                return *thisNode;
            }
        }
        // 普通成員函數
        const std::string& getName() const{
            std::cout <<"get name:"<<name_<<std::endl;
            return name_;
        }
        const std::string& getNameSpace() const{
            std::cout <<"getNameSpace:" << namespace_ << std::endl;
            return namespace_;
        }
    };
    // 初始化靜態成員
    ThisNode *ThisNode::thisNode = nullptr;

    // 實現命名空間內的函數,實例化一個類,并調用函數
    const std::string& getNameSpace(){
        return ThisNode::instance().getNameSpace();
    }
    const std::string& getName(){
        return ThisNode::instance().getName();
    }

};

int main(){
    // 使用
    test::getNameSpace();
    test::getName();
    return 0;
}

“c++怎么使用單例模式實現命名空間函數”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

长丰县| 罗平县| 铅山县| 灵丘县| 田阳县| 章丘市| 博客| 托克逊县| 万载县| 黄骅市| 蓝田县| 东山县| 和田市| 乌鲁木齐县| 海原县| 华容县| 大安市| 社旗县| 永宁县| 白山市| 汝州市| 仁化县| 都安| 泊头市| 栖霞市| 廉江市| 应城市| 东方市| 肇庆市| 崇义县| 安吉县| 凤城市| 靖州| 临漳县| 秦安县| 阳朔县| 腾冲县| 金昌市| 大田县| 昭苏县| 浦江县|