中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

wordpress ip更換域名給你一個網(wǎng)站seo如何做

wordpress ip更換域名,給你一個網(wǎng)站seo如何做,網(wǎng)絡(luò)空間租用價格,jsp網(wǎng)站開發(fā)的環(huán)境要求目錄 一、設(shè)計一個禁止拷貝的類 二、設(shè)計一個只能在堆區(qū)上創(chuàng)建對象的類 三、設(shè)計一個只能在棧區(qū)和靜態(tài)區(qū)上創(chuàng)建對象的類 四、設(shè)計一個不能繼承的類 五、設(shè)計一個只能創(chuàng)建一個對象的類(單例模式) 一、設(shè)計一個禁止拷貝的類 拷貝只會發(fā)生在兩個場景中…

目錄

一、設(shè)計一個禁止拷貝的類

二、設(shè)計一個只能在堆區(qū)上創(chuàng)建對象的類

三、設(shè)計一個只能在棧區(qū)和靜態(tài)區(qū)上創(chuàng)建對象的類

四、設(shè)計一個不能繼承的類

五、設(shè)計一個只能創(chuàng)建一個對象的類(單例模式)


?


一、設(shè)計一個禁止拷貝的類

拷貝只會發(fā)生在兩個場景中,分別是拷貝構(gòu)造和賦值,因此想要讓一個類禁止拷貝,只需要讓該類對象不能調(diào)用拷貝構(gòu)造函數(shù)以及賦值運算符重載即可

  1. C++98/03

    class CopyBan
    {
    public:CopyBan() { }
    private:CopyBan(const CopyBan& cb);CopyBan& operator=(const CopyBan& cb);
    };
    ?
    int main()
    {CopyBan cb1;// CopyBan cb2(cb1);  // error// CopyBan cb3;// cb3 = cb1;  // errorreturn 0;
    }
  2. C++11

    class CopyBan
    {
    public:CopyBan() { }CopyBan(const CopyBan& cb) = delete;CopyBan& operator=(const CopyBan& cb) = delete;
    };
    ?
    int main()
    {CopyBan cb1;// CopyBan cb2(cb1);  // error// CopyBan cb3;// cb3 = cb1;  // errorreturn 0;
    }


二、設(shè)計一個只能在堆區(qū)上創(chuàng)建對象的類

  1. 將類的構(gòu)造函數(shù)設(shè)置為私有,同時禁止拷貝構(gòu)造函數(shù)的生成,防止通過拷貝構(gòu)造創(chuàng)建對象;最后提供一個創(chuàng)建堆對象的靜態(tài)成員函數(shù)。

    #include <iostream>
    using namespace std;class HeapOnly
    {
    public:static HeapOnly* Create(){return new HeapOnly;}
    private:HeapOnly(){cout << "HeapOnly()" << endl;}HeapOnly(const HeapOnly& ho) = delete;
    };int main()
    {// HeapOnly ho;  // error// static HeapOnly sho;  // errorHeapOnly* pho = HeapOnly::Create();  // HeapOnly()// HeapOnly copy(*pho);  // errordelete pho;return 0;
    }
  2. 將類的析構(gòu)函數(shù)設(shè)置為私有,然后提供一個完成 delete 操作的靜態(tài)成員函數(shù)。

    #include <iostream>
    using namespace std;class HeapOnly
    {
    public:void Destroy(){delete this;}
    private:~HeapOnly(){cout << "~HeapOnly()" << endl;}
    };int main()
    {// HeapOnly ho;  // error// static HeapOnly sho;  // errorHeapOnly* pho = new HeapOnly;// HeapOnly copy(*pho);  // errorpho->Destroy();  // ~HeapOnly()return 0;
    }


三、設(shè)計一個只能在棧區(qū)和靜態(tài)區(qū)上創(chuàng)建對象的類

  1. 將類的構(gòu)造函數(shù)設(shè)置為私有,然后提供一個創(chuàng)建對象的靜態(tài)成員函數(shù)。

    #include <iostream>
    using namespace std;
    ?
    class StackStaticOnly
    {
    public:static StackStaticOnly CreateObj(){return StackStaticOnly();}
    private:StackStaticOnly(){cout << "StackStaticOnly()" << endl;}
    };
    ?
    int main()
    {StackStaticOnly sso = StackStaticOnly::CreateObj(); ?// StackStaticOnly()static StackStaticOnly ssso = StackStaticOnly::CreateObj(); ?// StackStaticOnly()// StackStaticOnly* psso1 = new StackStaticOnly;  // error// 注意:該方法無法防止以下的情況發(fā)生// StackStaticOnly* psso2 = new StackStaticOnly(sso);  // ok// 如果禁止拷貝構(gòu)造函數(shù)的生成,會導(dǎo)致 CreateObj 函數(shù)發(fā)生錯誤return 0;
    }
  2. 直接禁止 operator new 和 operator delete 的生成

    class StackStaticOnly
    {void* operator new(size_t size) = delete;void operator delete(void* p) = delete;
    };
    ?
    int main()
    {StackStaticOnly sso;static StackStaticOnly ssso;// StackStaticOnly* psso1 = new StackStaticOnly;  // error// StackStaticOnly* psso2 = new StackStaticOnly(sso);  // errorreturn 0;
    }


四、設(shè)計一個不能繼承的類

  1. C++98/03

    將基類的構(gòu)造函數(shù)設(shè)置私有,派生類就無法調(diào)用基類的構(gòu)造函數(shù),因此無法繼承。

    class NonInherit
    {
    public:static NonInherit CreateObj(){return NonInherit();}
    private:NonInherit() { }
    };
  2. C++11

    使用 final 關(guān)鍵字修飾類,表示該類不能被繼承

    class NonInherit final
    { };


五、設(shè)計一個只能創(chuàng)建一個對象的類(單例模式)

設(shè)計模式(Design Pattern)是一種針對軟件設(shè)計中經(jīng)常出現(xiàn)的問題和解決方案的標(biāo)準(zhǔn)化描述。它們可以被視為是經(jīng)驗豐富的軟件開發(fā)人員在解決類似問題時總結(jié)出來的設(shè)計思路、原則和指導(dǎo)。設(shè)計模式幫助我們以一種可重用的方式來解決特定的設(shè)計問題,從而使代碼更具靈活性、可維護性和可擴展性。

單例模式:一個類只能創(chuàng)建一個對象。該模式可以保證系統(tǒng)中該類只有一個實例,并提供一個訪問它的全局訪問點,該實例被所有程序模塊共享。比如在某個服務(wù)器程序中,該服務(wù)器的配置信息存放在一個文件中,這些配置數(shù)據(jù)由一個單例對象統(tǒng)一讀取,然后服務(wù)進程中的其他對象再通過這個單例對象獲取這些配置信息,這種方式簡化了在復(fù)雜環(huán)境下的配置管理。

單例模式有以下兩種實現(xiàn)模式

  1. 餓漢模式

    在程序入口之前就完成了單例對象的初始化。

    #include <iostream>
    using namespace std;
    ?
    class Singleton
    {
    public:// 提供一個獲取單例對象的靜態(tài)成員函數(shù)static Singleton& GetInstance(){return _ss;}
    private:// 將類的構(gòu)造函數(shù)設(shè)置為私有Singleton() {cout << "Singleton()" << endl;}
    ?// 禁止拷貝構(gòu)造函數(shù)的生成Singleton(const Singleton& s) = delete;
    ?static Singleton _ss; ?// 注意:靜態(tài)成員變量屬于類,不屬于某個具體的對象
    };
    ?
    Singleton Singleton::_ss; ?// Singleton()
    ?
    int main()
    {cout << &Singleton::GetInstance() << endl;cout << &Singleton::GetInstance() << endl;// 輸出的兩個地址是相同的
    ?// Singleton copy(Singleton::GetInstance());  // errorreturn 0;
    }
  2. 懶漢模式

    如果單例對象構(gòu)造十分耗時或者占用很多資源,比如加載插件、初始化網(wǎng)絡(luò)連接、讀取文件等等,而該對象在程序運行時又有可能不會用到,那么使用餓漢模式,在程序入口之前就完成單例對象的初始化,會導(dǎo)致程序啟動時變得非常緩慢,所以在這種情況下使用懶漢模式(延遲加載)更好。

    #include <iostream>
    using namespace std;
    ?
    class Singleton
    {
    public:static Singleton& GetInstance(){if (_pss == nullptr){_pss = new Singleton;}return *_pss;}
    ?// 一般情況下,單例對象是不需要釋放的,// 特殊場景:// 1、中途需要顯示釋放// 2、程序結(jié)束時,需要做一些特殊動作,比如持久化static void DelInstance(){if (_pss){delete _pss;_pss = nullptr;}}
    private:Singleton(){cout << "Singleton()" << endl;}
    ?~Singleton(){cout << "~Singleton()" << endl;}
    ?Singleton(const Singleton& s) = delete;
    ?static Singleton* _pss;
    };
    ?
    Singleton* Singleton::_pss = nullptr;
    ?
    int main()
    {cout << &Singleton::GetInstance() << endl;cout << &Singleton::GetInstance() << endl;// Singleton()// 輸出的兩個地址是相同的
    ?// Singleton copy(Singleton::GetInstance());  // error
    ?Singleton::DelInstance();// ~Singleton()return 0;
    }
http://www.risenshineclean.com/news/22283.html

相關(guān)文章:

  • 電子商城開發(fā)網(wǎng)站建設(shè)百度一下主頁官網(wǎng)
  • 電子商務(wù)平臺知識產(chǎn)權(quán)保護管理seo引擎搜索網(wǎng)站關(guān)鍵詞
  • 做寵物網(wǎng)站賺錢嗎陜西seo主管
  • 企業(yè)網(wǎng)站建設(shè)網(wǎng)站優(yōu)化百度官方認證
  • 網(wǎng)易那個網(wǎng)站可以做字幕外貿(mào)網(wǎng)站建設(shè)設(shè)計方案
  • 制作一個app合肥百度搜索排名優(yōu)化
  • 網(wǎng)站優(yōu)化解決方案第一設(shè)計
  • 雄安網(wǎng)站建設(shè)多少錢優(yōu)化快速排名公司
  • 公司網(wǎng)站怎么做才能有官網(wǎng)二字新公司如何做推廣
  • 微課做動畫的網(wǎng)站鄭州seo培訓(xùn)
  • 建立個人網(wǎng)站的方法nba最新交易新聞
  • 鄉(xiāng)鎮(zhèn)中心小學(xué)校園網(wǎng)站建設(shè)指南四川聚順成網(wǎng)絡(luò)科技有限公司
  • 重?c網(wǎng)站開發(fā)電腦優(yōu)化是什么意思
  • 合肥室內(nèi)裝修設(shè)計培訓(xùn)seo排名優(yōu)化北京
  • 網(wǎng)站建設(shè)新手指南百度導(dǎo)航如何設(shè)置公司地址
  • 一品威客網(wǎng)官網(wǎng)靠譜嗎搜索引擎優(yōu)化簡稱
  • html櫻花飄落代碼seo免費工具
  • 好的做淘寶詳情頁的網(wǎng)站有哪些內(nèi)容貼吧友情鏈接在哪
  • 天津有做網(wǎng)站不錯的嗎seo知識分享
  • 做網(wǎng)站的工資高百度店鋪
  • 兗州建設(shè)公司網(wǎng)站免費推廣網(wǎng)站大全
  • 網(wǎng)站美化怎么做站長工具seo綜合查詢分析
  • 怎樣給網(wǎng)站做外鏈聊城疫情最新消息
  • 建設(shè)品牌網(wǎng)站公司關(guān)鍵詞檢測工具
  • 做網(wǎng)站圖片為什么不清晰衡陽百度seo
  • 網(wǎng)站制作公司天強科技seo網(wǎng)站優(yōu)化軟件
  • 標(biāo)題優(yōu)化方法南京谷歌seo
  • 電子商務(wù)網(wǎng)站建設(shè) iis怎樣做網(wǎng)站推廣
  • 蒲城做網(wǎng)站南昌seo排名優(yōu)化
  • 重慶九龍坡營銷型網(wǎng)站建設(shè)公司哪家好站長之家查詢