本篇內(nèi)容介紹了“C++編程技巧舉例分析”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、隆德ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的隆德網(wǎng)站制作公司
在C++中,Windows類中的Sort方法將成為ListBox類中Sort方法的基礎(chǔ)方法,在期望調(diào)用Windows類中的Sort方法時,ListBox類中的Sort方法就會被調(diào)用。在C#中,虛擬函數(shù)總是被認為是虛擬調(diào)度的根。也就是說,一旦C#發(fā)現(xiàn)一個虛擬的方法,就不會再在虛擬鏈中查找其他虛擬方法。假如ListBox再次被編譯,編譯器就會生成一個警告信息:
"class1.cs(54,24): warning CS0114: 'ListBox.Sort()' hides inherited member 'Window.Sort()'.
要使當前的成員覆蓋原來的方法,就需要添加override關(guān)健字,或者添加new關(guān)健字。要消除警告信息,編程人員必須搞清楚他想干什么??梢栽贚istBox類中的Sort方法前添加new,表明它不該當覆蓋Window中的虛方法:
public class ListBox : Window { public new virtual void Sort() {"}
這樣就可以清除警告信息。假如編程人員確實期望覆蓋掉Window中的方法,就必須使用override關(guān)健字來顯性地表明其意圖。
Employee::Employee(int theAge, int theSalaryLevel): Person(theAge) // 初始化基礎(chǔ)類 salaryLevel(theSalaryLevel) // 初始化成員變量 { // 構(gòu)造器的代碼 }
C#中的初始化與C++中不同。假設(shè)有一個帶有private性質(zhì)的成員變量age的Person類,Employee是由繼續(xù)Person類而生成的,它有一個private性質(zhì)的salaryLevel成員變量。在C++中,我們可以在Employee的構(gòu)造器的初始化部分初始化salaryLevel,如下面的代碼所示:
Class Employee : public Person { // 成員變量的定義 private salaryLevel = 3; // 初始化 }
這種方法在C#中是非法的。盡管仍然可以初始化基礎(chǔ)類,但象上面的代碼那樣對成員變量初始化就會引起編譯錯誤。在C#中,我們可以在定義成員變量時的同時對它進行初始化注重:必須明確地定義每個變量的訪問權(quán)限。
“C++編程技巧舉例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!