牛客 2017 10 10 C 錯題整理

2021-08-09 03:42:08 字數 998 閱讀 5371

1.已知表示式++a中的"++"是作為成員函式過載的運算子,則與++a等效的運算子函式呼叫形式為()

a.operator++()

a.operator++(0)

a.operator++(int)

operator++(a,0)

解答:a

c++規定:

++a 字首運算子 a.operator() 不需要加引數。

a++字尾運算子 a.operator(int) 需要加引數。

2.在x86的機器上,int a=0xabcd1234 char b=((char*)&a)[0]請問b是多少

解答:d

x86是小端儲存,即高位儲存在高位址,低位儲存在低位址。i

nt型別資料佔4個位元組,char佔1個位元組。

int a = 0xabcd1234;//這裡0x34是乙個位元組,0x12,0xcd,0xab也都是乙個位元組

記憶體中 ab  cd  12   34,b作為乙個char,指向第乙個記憶體區域,也就是低位址,右邊表示式指標指向為0x34.

3.有這樣乙個類:

class eye

;

現在希望定義乙個head類,也想實現look的功能,應該使用()方法,實現**重用。

a:繼承

b:組合

c:模板

d:過濾

解答:b

組合是在新類中以原有類的物件作為資料成員,繼承是在不改變現有的類的基礎上,採用現有類的形式並在其中新增新**,組合一般用於在新類中使用現有類的功能而不是他的介面的情況,就是新類使用者看到的只是為新類所定義的介面。而繼承則是用於在新類需要向基類轉化的情況(多型),這也是組合和繼承使用的最清晰的判斷方法。

結合本題分析,我們只需讓眼睛作為頭的乙個成員即可,而讓頭去繼承眼睛的特性是沒有必要的。

詳解繼承與組合的優缺點

繼承與組合的優缺點

牛客C 錯題筆記整理

動態繫結是物件導向程式設計語言中的一種機制。這種機制實現了方法的定義與具體的物件無關,而對方法的呼叫則可以關聯於具體的物件。物件導向有三種特性 封裝 繼承 多型。其中多型性有兩種,一種是依靠函式過載實現的靜態繫結,一種是依靠虛函式實現的動態繫結。c 中的純虛函式,下面說法均正確 子類中必須覆蓋基類的...

牛客網 錯題整理(4)

錯題集 1.沒用引數的兩個函式是不能過載的.說法是否正確?答案 錯誤 解析 const 可以構成過載 2.math.round 11.5 等於 答案 12 解析 首先要注意的是它的返回值型別是long,如果 math.round 11.5f 那它的返回值型別就是int,這一點可以參考api 其次它返...

牛客網 錯題整理 6

錯題集 1.以下程式段執行後結果是 include void main p q arr p printf d,p q printf d,char p char q printf d sizeof arr sizeof arr 答案 1,2 15 解析 指標自增 自減每次移動的偏移量是指標所指向物件的...