在C++中可以使用以下設置/設計模式嗎?C++設計模式:可能有派生類的私有繼承方法?
- 一個前導類
- 一個Worker類
- 具有方法M()
- 一個MyWorker類(繼承工人)
前導類具有許多工人和需要從Worker類調用方法M()。但是,我不希望Worker(即MyWorker)的任何實現有權訪問方法M()。在這種情況下,公共,私人和保護似乎都不起作用。
該設置是否可行?或者我應該如何設計其他東西?
由於
編輯:(添加示例情況下)
假設M()是GiveMoney(),負責人= Parent和工人=兒童。我只希望父母能夠給孩子錢(和孩子不能給自己的錢)。
你想一個類不能訪問它自己的方法,但該方法可以被調用從另一個類?我不認爲這是可能的任何語言。 – 2011-05-15 21:26:55
郵政編碼,如果將M()定義爲私有;並通過公共擴展應該會導致MyWorker無法訪問私有方法。事實上,M()是私有的,只要Worker(M()的原始所有者)是調用M()的唯一東西,就可以正常工作,因爲通常情況下,實例可以對其他實例上的私有方法/成員進行操作同班。 – Suroot 2011-05-15 21:27:19
如果'M()'被定義爲** private **並且'Leader'是'Worker'的一個朋友,那麼一切都應該如你所願地工作 - 如果我正確理解你的話。 – 2011-05-15 21:31:12