虛函式在繼承體系中的可訪問性為什麼可以變動?

時間 2021-06-01 03:31:43

1樓:藍色

public和private是訪問性的限制,而非可見性的限制,所以只要能在編譯期間突破編譯器的限制,那麼就OK,於是利用多型,執行期間利用虛表指標指向了B的這個方法,這是可以的。而有關訪問性和可見性的概念,在最近C++17 Modules System的提案中就反感了這一點兒,所以Modules就很徹底,export的東西才是可見的,而非export的東西是不可見的。

如moduleM;

export

intfoo

(void

);對於使用Module M的consumer來說,它只能可見f和g,foo是完全不可見的,也不能通過執行期的措施來做到

importM;

intmain()

2樓:蔡傑

public private是編譯期的事情。編譯期允許就允許了。

多型是執行期的事情,所以這導致了呼叫到子類的private方法的「詭異」的事情。

至於為什麼。。。C++就是這麼設計的,因此可以這樣「鑽漏洞」。。

法律夠嚴格了吧?大律師照樣鑽漏洞。。

為什麼C 繼承過程中使用訪問說明符和虛函式?

首先,繼承過程中使用訪問說明符主要是為了控制繼承下來的成員的訪問性,比如對類A classA 使用不同的繼承方式,對應的成員訪問性如下 classB publicA classC protectedA classD privateA 至於private 繼承 在 B 類裡面,this 還是可以轉成 ...

為什麼可微函式的增量能表示成自變數增加乘以A再加上高階無窮小

看到問題描述,重新寫一下 為什麼dy Adx就有Dy ADx o Dx 因為微分本來定義的就是,如果有後者就有前者。當後者成立的時候,就把後者中的線性項叫做微分你問有什麼必然性?因為微分就是這麼定義的啊 neverwinboy 自問自答一下,防止自己又忘了。目前是這麼理解的,函式連續的情況下,把 x...

在KPL中,為什麼同樣前期弱中期發力的娜可露露趙雲能成為野核,而很少能看到野核李白的出場?

君墨 那可可以打肉,靈活,養起來收益高,趙雲有經濟就是野核沒錢保底也是個藍領,效果一直都在的。那麼同樣三件套出山的李白韓信為什麼上不去?先來說說李白,前期不配守野區,雖然野區強度是和中輔繫結的,但是你最多只能保證你的發育強度和對面打野持平,那麼為什麼我不把這對強勢的中輔搖擺給蘭陵王老虎雲中君這種前期...