自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

技術(shù)專家詳述C++源代碼相關(guān)編制方法

開(kāi)發(fā) 后端
不懂得volatile的內(nèi)容將會(huì)帶來(lái)災(zāi)難。假設(shè)被面試者正確地回答了這是問(wèn)題(嗯,懷疑是否會(huì)是這樣),我將稍微深究一下C++源代碼。

Visual C++ 6.0編譯器負(fù)責(zé)將C++源代碼編譯成匯編文件,轉(zhuǎn)換為中間文件(obj文件),然后使用連接器將相關(guān)的中間文件連接在一起,生成可執(zhí)行的二進(jìn)制文件,希望本文能教會(huì)你更多東西。

1.多態(tài)性的概念
多態(tài)性是指用一個(gè)名字定義不同的函數(shù),這函數(shù)執(zhí)行不同但又類似的操作,從而實(shí)現(xiàn)“一個(gè)接口,多種方法”。多態(tài)性的實(shí)現(xiàn)與靜態(tài)聯(lián)編、動(dòng)態(tài)聯(lián)編有關(guān)。靜態(tài)聯(lián)編支持的多態(tài)性稱為編譯時(shí)的多態(tài)性,也稱靜態(tài)多態(tài)性,它是通過(guò)函數(shù)重載和運(yùn)算符重載實(shí)現(xiàn)的。動(dòng)態(tài)聯(lián)編支持的多態(tài)性稱為運(yùn)行時(shí)的多態(tài)性,也稱動(dòng)態(tài)多態(tài)性,它是通過(guò)繼承和虛函數(shù)實(shí)現(xiàn)的。

2.函數(shù)重載
函數(shù)重載的意義在于他能用同一個(gè)名字訪問(wèn)一組相關(guān)的函數(shù)。在類中普通成員函數(shù)和構(gòu)造函數(shù)都可以重載,特別是構(gòu)造函數(shù)的重載(他提供了多種初使化方式)給用戶更大的靈活性。

在基類和派生類的函數(shù)重載有兩種情況:一種是參數(shù)有所差別的重載。另一種是參數(shù)沒(méi)有差別的重載,只是他們屬于不同的類??梢杂靡韵聝煞N方法來(lái)區(qū)分這兩種函數(shù):用對(duì)象名加以區(qū)分;使用“類名::”加以區(qū)分。


3.運(yùn)算符重載稱動(dòng)態(tài)多態(tài)性
他是通過(guò)繼承和虛函數(shù)實(shí)現(xiàn)的。運(yùn)算符重載通過(guò)創(chuàng)建運(yùn)算符函數(shù)operator@()來(lái)實(shí)現(xiàn)。運(yùn)算符函數(shù)定義了重載的運(yùn)算符將要進(jìn)行的操作,這種操作通常作用在一個(gè)類上。這樣,在編譯時(shí)遇到名為operator@的運(yùn)算符函數(shù)(@表示所要重載的運(yùn)算符),就檢查傳遞給函數(shù)的參數(shù)的類型。

重載運(yùn)算符與預(yù)定義運(yùn)算符的使用方法完全相同,它不能改變?cè)羞\(yùn)算符的參數(shù)個(gè)數(shù)(單目或雙目),也不能改變?cè)械膬?yōu)先級(jí)的結(jié)合性。用戶不能定義新的運(yùn)算符,只能從C++源代碼已有的運(yùn)算符中選擇一個(gè)恰當(dāng)?shù)倪\(yùn)算符重載。

成員運(yùn)算符函數(shù)運(yùn)算符函數(shù)可以定義為它將要操作的類的成員(稱為成員運(yùn)算符函數(shù)),也可以定義為非類的成員,但是非成員的運(yùn)算符函數(shù)大多是類的友元函數(shù)(稱為友元運(yùn)算符函數(shù))。成員運(yùn)算符函數(shù)在類中的聲明格式為:

4.賦值運(yùn)算符
繼承C語(yǔ)言,用戶自定義的類和結(jié)構(gòu)都要能進(jìn)行賦值運(yùn)算。而數(shù)組名不能賦值,數(shù)組名實(shí)質(zhì)上是一個(gè)常量指針。對(duì)于任何類,C++源代碼提供了默認(rèn)的賦值運(yùn)算符。一般地,默認(rèn)的賦值運(yùn)算符重載是能夠勝任工作的。當(dāng)類中有指針類型時(shí),需要自定義賦值運(yùn)算符函數(shù)。一般其函數(shù)體包含兩部分:與析構(gòu)函數(shù)類似,取消對(duì)象已經(jīng)占有的資源;

與構(gòu)造函數(shù)類似,諂渲蟹峙湫碌淖試礎(chǔ)?br> 類的賦值運(yùn)算符重載“=”只能重載為成員函數(shù),不能重載為友元函數(shù)。
重載后的運(yùn)算符函數(shù)operator=()不能被繼承。
拷貝構(gòu)造函數(shù)和賦值運(yùn)算符重載的區(qū)別:聲明和定義方式不同;調(diào)用方式不同。

5.C++源代碼
虛函數(shù)是重載的另一種表現(xiàn)形式,允許虛函數(shù)調(diào)用與函數(shù)體之間的聯(lián)系在運(yùn)行時(shí)才建立。定義:虛函數(shù)就是在基類中被關(guān)鍵字virtual說(shuō)明,并在派生類中重新定義的函數(shù),在派生類中重新定義時(shí),其函數(shù)原形包括返回類型,函數(shù)名,參數(shù)個(gè)數(shù)與參數(shù)類型的順序,都必須與基類中的原形必須相同。#t#

構(gòu)造函數(shù)不能是虛函數(shù),但析構(gòu)函數(shù)可以是虛函數(shù)。虛函數(shù)與重載函數(shù)的關(guān)系:當(dāng)普通的函數(shù)重載時(shí),其函數(shù)的參數(shù)或參數(shù)類型必須有所不同,函數(shù)的返回類型也可不同;在派生類中,重新定義虛函數(shù)時(shí)要求函數(shù)名、返回類型、參數(shù)個(gè)數(shù)、參數(shù)的類型和順序與基類中的函數(shù)原形完全相同;

若僅僅返回類型不同,其余均相同,系統(tǒng)會(huì)給出錯(cuò)誤信息。虛函數(shù)重載時(shí)若僅僅函數(shù)名相同,而參數(shù)的個(gè)數(shù)、類型或順序不同系統(tǒng)將它作為普遍函數(shù)重載,虛函數(shù)的特征將會(huì)丟失。多重繼承與虛函數(shù):多重繼承可視為多個(gè)單繼承的組合。

6.純虛函數(shù)和抽象類
純虛函數(shù):是一個(gè)在基類中說(shuō)明的虛函數(shù),他在該基類中沒(méi)有定義,但要求在它的派生類中定義自己的版本,或重新說(shuō)明為純虛函數(shù)。純虛函數(shù)的一般形式:virtual type func_name(參數(shù)表)=0(type是函數(shù)的返回類型,func_name是函數(shù)名)。抽象類:一個(gè)類至少有一個(gè)純虛函數(shù)的類。抽象類提供了處理各種不同派生類的統(tǒng)一接口,將實(shí)現(xiàn)的責(zé)任交給了派生類。

責(zé)任編輯:chenqingxiang 來(lái)源: CSDN
相關(guān)推薦

2010-01-11 15:36:08

C++代碼

2010-01-22 18:06:24

C++代碼

2010-01-11 13:19:24

C++代碼

2010-02-26 16:05:19

Python 源代碼

2010-01-26 09:40:23

C++代碼

2010-02-26 10:24:43

Python源代碼

2010-03-01 10:39:18

Python源代碼

2010-01-12 15:03:33

C++代碼

2010-01-26 13:14:48

2010-02-23 10:14:29

Python 源代碼

2020-07-07 10:55:01

C++C語(yǔ)言代碼

2014-04-04 09:53:18

2048C++

2020-11-13 13:05:27

Java開(kāi)發(fā)代碼

2010-01-13 16:44:03

C++

2010-01-14 10:42:08

C++源代碼

2010-02-01 17:31:06

C++類成員

2010-02-05 17:09:19

C++創(chuàng)建Web服務(wù)

2010-01-12 11:03:04

C++庫(kù)

2010-01-12 14:16:31

Visual C++語(yǔ)

2010-02-07 09:52:22

Android 插件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)