C 執行時多型的選擇題,幫幫新手吧

2023-01-01 17:35:57 字數 4332 閱讀 4863

1樓:匿名使用者

1全部答案是d

解釋:a:建構函式不能宣告為虛擬函式,但在建構函式中可以呼叫虛擬函式.在建構函式或解構函式中呼叫虛擬函式,將採用靜態聯編

b,c,d:建構函式不能宣告為虛擬函式,但解構函式可以宣告為虛擬函式.

當基類的解構函式宣告為虛擬函式時,無論派生類是否使用virtual關鍵字說明,派生類的解構函式一定是虛擬函式,而且,如果滿足動態聯編的其他條件,對虛解構函式的呼叫將採用動態聯編

2樓:小何才露尖尖角兒

答案是d

理由:虛擬函式採用的是虛呼叫,所謂虛呼叫就是指不在編譯的時候確定應該呼叫父類或者子類的哪個函式,即是遲後聯編,而我們呼叫構造時必須物件建立一開始就構造物件,所以建構函式不能宣告為虛擬函式。

換句話說,虛擬函式和非虛擬函式的主要區別叫做動態聯編,或者叫做遲後聯編。1樓說的完會不對。。

3樓:匿名使用者

答案是d

理由:虛擬函式採用的是虛呼叫,所謂虛呼叫就是指只用部分資訊即可呼叫該函式,而我們呼叫構造時必須知道構造物件的完整資訊,所以建構函式不能宣告為虛擬函式。

c++高手賜教,幫忙做幾道選擇題,不勝感激!!

4樓:匿名使用者

bcbcba

1、a.作為友元函式過載的

1元運算子,應該有1個引數。

c作為版友元函式重權載的2元運算子,應該有2個引數d作為成員函式過載的2元運算子,應該有1個引數2、這是定義,不解釋

3、static成員屬於類,不屬於類的例項,要在類外初始化4、純虛擬函式的定義,不解釋

5、t可以是任意型別,不光是類

6、類别範本例項化後當然是類,不可能還是模板,也不可能就生成了一個物件,也不會是抽象類。

5樓:匿名使用者

1b 語法規定 前置單目運算子過載為成員函式時沒有形參,後置單目運算子過載為成員函回數時需要一個int型形參答..

2c 執行中的多型需要滿足三個條件, 首先類之間滿足型別相容原則,第二是宣告虛擬函式,第三要由成員函式來呼叫或是通過指標.,引用來訪問虛擬函式.

4c virtual 和 =0

6 a 類别範本例項化 生成類 類例項化生成物件

6樓:匿名使用者

bcbcba 僅供參考 謝謝

c++支援兩種型別的多型性:_________、執行時多型

7樓:匿名使用者

(1)編譯時的多型性

編譯時的多型性是通過過載來實現的。對於非虛的成員來說,系統在編譯時,根據傳遞的引數、返回的型別等資訊決定實現何種操作。

(2)執行時的多型性

執行時的多型性就是指直到系統執行時,才根據實際情況決定實現何種操作。c++中,執行時的多型性通過虛成員實現。

8樓:匿名使用者

編譯時多型對應執行時多型

靜態多型對就動態多型

兩種說法都正確

c++選擇題

9樓:空號一號

19、不會╮(╯-╰)╭但是可以用邏輯推理,如果d是正確的那麼b和c都不對。這些題目看起來都是單選,所以這是不可以的,所以d是錯的╮(╯-╰)╭

18、預設的構造/解構函式都是無引數無返回型別的,所以選a;

14、b顯然不對;d把整數值賦給指標這是扯淡的;a看似對,但指標p沒有初值就直接解引用是危險的;只有c是正確的;

13、引用我也不太懂啦,但是a、b、c在本質上都一樣,只有d把非常量賦給常量引用看起來不太對;

10、二維陣列的元素必須用兩個下標來引用,這裡a[0~1][0~2]都是合理的引用,所以只有b正確。

10樓:匿名使用者

1d過載函式編譯時就已經決定呼叫哪一個,無法實現執行多型2a,注意都沒有引數和返回值

3c,a指標p無效 b交換後都=*y d無法交換,c也有問題,有可能溢位。

4a,引用必須宣告時就繫結。5b

求解c++實驗題,我想要的答案是:直接複製下來在c++裡面能直接執行的。2個題目如下。緊急請幫幫!

11樓:匿名使用者

這不是c 程式設計教程的章節練習題嗎

c++ 引用和多型經典題,求特別特別的細詳解

12樓:

首先這題答案是c,這個編譯一下就能看到了,下面我來說說原因。

b.foo(5.0)輸出子類cb的結果這個應該沒什麼問題吧?

子類物件輸出子類的方法,父類物件輸出父類的方法。這裡的b是cb的物件,所以輸出的是子類b的foo(double d)方法。

然後是a.foo(5.0),這裡輸出的結果是子類的foot (int i)而不是父類的foo(int i)是因為你這裡宣告部分ca &a = b;這是一個引用賦值,父類物件a通過子類物件b引用賦值,由於父類的

foo(int i)是virtual虛方法,所以由子類物件b的方法foo(int i)來實現了。這就是c++的多型。

這裡的ca &a = b;這種引用方式賦值很難理解,在實際專案中強烈不推薦使用。本人才疏學淺,對於這行的理解也是問了我師傅才明白的。一般是追求那些個**極致的人才搞的吧。

實際專案中多以父類指標指向子類物件來實現多型的。例如這樣寫

cb b;

ca * a = &b;

a->foo(5.0);

b.foo(5.0);

這樣讓別的程式設計師一眼就能看出你的a只是一個空殼。。實際上還是b物件,而且這種ca &a = b;存在一個作用域的缺陷。

ca c;

c.foo(5.0);

這裡c輸出的是父類foo(int i)這就讓c++的多型失效了。因為子類物件b在{}中釋放了。這種情況在實際專案中應該是大家不希望看到的。

求c++大神。14個選擇題,100分,謝謝啊!急!

13樓:

1. 以下敘述中正確的是( d)

d) 所有被呼叫的函式一定要在呼叫之前進行定義

2. c++語言的跳轉語句中,對於break和continue說法正確的是(b)

b)continue語句只應用與迴圈體中

3. for(int x=0,y=0; !x& &y<=5; y++)語句執行迴圈的次數是(c)

c)64. 假定aa為一個類,a()為該類公有的函式成員,x為該類的一個物件,則訪問x物件中函式成員a()的格式為(b)。

b) x.a()

5. 下面有關過載函式的說法中正確的是(c)

c)過載函式必須有不同的形參列表

6. 下列關於建構函式的描述中,錯誤的是(d)

d)建構函式不可以過載

7. 設有陣列定義:char array[]=″china″;,則陣列array所佔的空間為( c )

c)6個位元組

8. 下面選項中不屬於物件導向程式設計特徵的是(d) 。

d)相似性

9. 在c++中用來實現執行時多型性的是( d)。

d)虛擬函式

10. 以下程式的輸出結果是(a)

#include

using namespace std;

void reverse(int a,int n)

下列選項敘述正確的是(d)

d) 輸出$$$

15. 假定ab為一個類,則執行 「ab x;」語句時將自動呼叫該類的(b)。

b) 無參建構函式

14樓:手機使用者

在前面加上

#include

#include

typedef enum _memory_information_class memory_information_class;

typedef ulong (*pf_zwqueryvirtualmemory) (

handle processhandle,pvoid baseaddress,

memory_information_class memoryinformationclass,

pvoid memoryinformation,ulong memoryinformationlength,pulong returnlength optional);

15樓:

1-5:accab

6-10:bcdda

11-15:ddddb

o(︶︿︶)o 唉,現在的孩子真懶了~~

16樓:

1-5:accac

6-10:bcdda

11 13-15:d ddb

C語言的一些選擇題

sum pad 5 pad sum pad 5 sum 6pad pad 6 pad pad 7 printf d n pad 7sum 是先返回sum的值然後sum 1 sum是sum 1然後返回sum的值,加過1後的第二題c a 不能void 2 不能在第一個字母 d 號不能出現 11 一個演算...

C真的是選擇題正確率最高的選項嗎

沒有這種可能性,這是一種心理安慰。而且就算是統計出來的確是c的選項最多,對你答題的正確率沒有任何關係。它們之間沒有因果關係。英語選擇題蒙什麼選項正確率高 c概率最高,其次是b或d,因為檢驗你做題的熟練度,所以正確的選項一般安排在偏後邊,如果你不會的話就很耽誤時間,不知道選什麼,這是基本心理,但不要耍...

c語言的選擇題,幫忙解釋一下答案,謝謝

1.緩衝區中輸入 2473 while第一次迴圈 c 2,執行case 0 因為沒有break,所以順序執行case 1 putchar c 4 輸出6 仍然沒有break 繼續執行case 2 putchar c 4 break 輸出6 break跳出本次迴圈 while第二次迴圈 c 4,執行c...