Re: [問題] virtual static function
看板C_and_CPP作者softwind (software everywhere)時間15年前 (2010/10/07 00:43)推噓0(0推 0噓 0→)留言0則, 0人參與討論串3/4 (看更多)
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):