1、對(duì)于虛擬函數(shù),子類里的成員訪問(wèn)權(quán)限符可以和父類不同。即對(duì)于基類的函數(shù)func如果是public的,子類中它可以是private的。
?
class Base { public: Base(); virtual ~Base(); public: virtual void func(void); // 公有 }; class Derived : public Base { public: Derived(); virtual ~Derived(); private: void func(void); // 私有,和父類不同 }; Base * pB = new Base(); pB->func(); pB = new Derived(); pB->func(); // 正常訪問(wèn) Derived * pD = new Derived(); // pD->func(); 不能訪問(wèn)
2、“存取限制”不能解除“因多繼承而得的members”的模棱兩可的狀態(tài)。原因:改變某個(gè)class member的可存取性,絕不應(yīng)該連帶改變程序的意義。
?
?
class Base1 { public: int doIt(); }; class Base2 { private: int doIt(); // 不管這里是public,protected還是private,都會(huì)產(chǎn)生模棱兩可 } class Derived: public Base1, public Base2 { } Derived d; int i = d.doIt(); // 錯(cuò)誤,模棱兩可
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
