新聞中心
C語言中什么函數(shù)不能聲明為虛函數(shù)?
c語言里不管什么函數(shù)都不可以聲明成虛函數(shù)的,只有c++里才可以
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比上林網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式上林網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋上林地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
什么函數(shù)不能聲明為虛函數(shù)?
inline, static, constructor ,template 函數(shù)都不能 為虛函數(shù),而析構函數(shù)可以。
為什么呢:
inline: 編譯器替換; 而虛函數(shù)是為了解決運行期間綁定。
static:class 成員; 編譯期間就給class了。
constructor: 構造函數(shù)表示要生成一個class的object;假設是virtual的,那就說不知道這個實例化derived還是based的class。但是類型實例化必須在編譯期確定(否則編譯器不知道到底是什么對象了)
template:模板實例是在 compile-time,virtual就意味著在run-time確定。這讓編譯器設計者為難了,這就是說虛函數(shù)表要指向各種版本的 template function 實例,代碼設計者confuse,編譯器設計者也覺得蠻煩。
C語言和C++語言的差別?
1、C是一門中級語言,C++是一個門高級語言。
2、C語言是面向過程的,而C++是面向對象的。
3、C語言僅支持內置的數(shù)據(jù)類型,C++支持內置和用戶定義的數(shù)據(jù)類型。
4、C和C++中都有結構的概念,但是在C語言中結構只有成員變量,而沒成員方法,而在C++中結構中,它可以有自己的成員變量和成員函數(shù)。但是在C語言中結構的成員是公共的,什么想訪問它的都可以訪問
5、特別是C++中的圖形處理,它和語言的圖形有很大的區(qū)別。C語言中的圖形處理函數(shù)基本上是不能用在中C++中的。C語言標準中不包括圖形處理。
6、C語言對程序的文件的組織是松散的,幾乎是全要程序處理;而c++對文件的組織是以工程,各文件分類明確。
7、C++中的IDE很智能,和VB一樣,有的功能可能比VB還強。
8、C++對可以自動生成你想要的程序結構使你可以省了很多時間。有很多可用的工具如加入MFC中的類的時候,加入變量的時候等等。
9、C++中的附加工具也有很多,可以進行系統(tǒng)的分析,可以查看API;可以查看控件。
10、C中沒有虛函數(shù),C++有虛函數(shù)。
11.C語言沒有命名空間功能,C++增加了命名空間,避免全局命名沖突。
12.C語言源文件的后綴是C,C++源文件是cpp。
13.C語言中如果一個函數(shù)沒有指定返回值類型,默認返回int類型;C++中如果一個函數(shù)沒有返回值則必須指定為void
當前標題:c語言有虛函數(shù)的說法嗎 c中虛函數(shù)的作用
標題網(wǎng)址:http://fisionsoft.com.cn/article/ddjesee.html