課程
/后端開發(fā)
/C++
/C++遠征之封裝篇(上)
構(gòu)造函數(shù)只能在public下定義嗎
2016-06-26
源自:C++遠征之封裝篇(上) 6-5
正在回答
不一定, 你也可以定義在 protected/private 中, 但如果這樣地話, 你就沒辦法實例化這個類了! 有的時候, 會要求禁止用戶創(chuàng)建類的實例就會這么用的, 比如設(shè)計模式中有一個單件模式, 就是限制一個類只能有一個實例的: class singleton { private: singleton() {} ~singleton() {} public: static singleton &get_instance(void) { static singleton _inst; return _inst; } public: void foo(void) { } }; 這樣可以防止用戶創(chuàng)建自己的實例(編譯會報錯), 而用戶想訪問 singleton 類地話可以通過 singleton::get_instance().foo(); 來訪問!
不是的
public只是影響是否可訪問 可能定義了卻不能訪問。
舉報
封裝--面向?qū)ο蟮幕?,本教程力求幫助小伙伴們即學(xué)即會
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-02-05
不一定, 你也可以定義在 protected/private 中, 但如果這樣地話, 你就沒辦法實例化這個類了! 有的時候, 會要求禁止用戶創(chuàng)建類的實例就會這么用的, 比如設(shè)計模式中有一個單件模式, 就是限制一個類只能有一個實例的: class singleton { private: singleton() {} ~singleton() {} public: static singleton &get_instance(void) { static singleton _inst; return _inst; } public: void foo(void) { } }; 這樣可以防止用戶創(chuàng)建自己的實例(編譯會報錯), 而用戶想訪問 singleton 類地話可以通過 singleton::get_instance().foo(); 來訪問!
2016-06-26
不是的
public只是影響是否可訪問 可能定義了卻不能訪問。