看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《Hitmear (屍殌化液)》之銘言: : virtual 這關鍵字是為了polymorphism : 能夠在run-time的時後執行對的derive function : static 這關鍵字冠在function前是為不用產生instance即可使用 : 從字面上來看這兩者是有點衝突的 : 事實上,擺在一起也的確會得到一個compiler error : 請問有做法可以滿足讓function 又是virtual 又是static嗎? : ----- (C++ 這兩個修飾字不能並用 so 以下都是幻想文...) virtual強制繼承的class必須實作該method才能 instance化 static修飾 method,該method轉成class method, 需要藉由class才能使用 當virtual和static同時修飾一個method, (幻想) 表示 該method需要透過class才能access 同時 因為是virtaul method, so 原本class不能直接被access 需要透過先用一個class強制繼承該class, 同時 必須實作該method 這樣才能使用 class method. 一個簡單的case class VirtualSystem{ public: static virtual doAction(); } 這裡的 VirtualSystem 顯示 他只有一個class method, 而且還沒有被實作 當一個class繼承VirtualSystem class System: public VirtualSystem{ public: static doAction(){} } 這邊的doAction()就必須有implement 否則compile error 如果需要call該method 必須透過System System.doAction(); 類似這樣才能work... -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.112.203