C 實驗多型性

2021-10-10 02:17:33 字數 2513 閱讀 4608

桂 林 理 工 大 學

實 驗 報 告

實驗名稱 多型性 日期 2023年 05 月15 日

一、實驗目的:

1、 掌握運算子過載的方法。、

2、學習使用虛函式實現動態多型性。

二、實驗環境:

visual c++

三、實驗內容:

(寫出主要的內容)

1. 定義point類,有座標x,y兩個成員變數;對point類過載+、-、++(左)、++(右)四種運算子,實現對座標值的執行與改變。

#include

using

namespace std;

class

point

;point::

point

(int xx,

int yy)

point point::

operator

+(point p2)

point point::

operator

-(point p2)

point point::

operator++(

)int point::

getx()

int point::

gety()

point point::

operator++(

int)

//過載++(右),增加乙個偽引數,以便與++(左)區別

intmain()

輸出結果:

a原來的值:0,0

左加加被執行!

a的值為:1,1

pa的值為:1,1

b原來的值:3,4

左加加被執行!

b的值為:4,5

pb的值為:4,5

右++被執行

b的值為:5,6

pb的值為:4,5

c的值:6,7

d的值:-4,-5

2.修改程式lab7_2.cpp,給bicycle、motorcar、motorcycle這三個類均定義run、stop等成員函式,而main函式不變,編譯執行,觀察結果並作分析。

3.修改上面的main函式,定義乙個基類的指標,再用這個指標分別呼叫這幾個類的物件的成員函式,編譯執行,觀察結果並分析原因;把基類的run、stop定義為虛函式,再編譯執行,觀察結果並分析原因;把其他類的run、stop也定義為虛函式,看看是否有變化。

#include

using

namespace std;

class

vehicle

;vehicle::

vehicle()

vehicle::

~vehicle()

void vehicle::

run(

)void vehicle::

stop()

class

bicycle

:virtual

public vehicle

;bicycle::

bicycle()

bicycle::

~bicycle()

class

motocar

:virtual

public vehicle

;motocar::

motocar()

motocar::

~motocar()

class

motorcycle

:public bicycle,

public motocar

;motorcycle::

motorcycle()

motorcycle::

~motorcycle()

intmain()

輸出結果:

構造了乙個motocar

構造了乙個vehicle

構造了乙個bicycle

構造了乙個motocar

構造了乙個motorcycle

vehicle開始執行!

vehicle停止執行!

vehicle開始執行!

vehicle停止執行!

vehicle開始執行!

vehicle停止執行!

vehicle開始執行!

vehicle停止執行!

vehicle開始執行!

vehicle開始執行!

vehicle開始執行!

vehicle開始執行!

析構了乙個motorcycle

析構了乙個motocar

析構了乙個bicycle

析構了乙個vehicle

析構了乙個motocar

析構了乙個vehicle

析構了乙個bicycle

析構了乙個vehicle

析構了乙個vehicle

四、 心得體會:

1、學會掌握如何使用運算子過載的方法。

2、學習並且能夠使用虛函式實現動態多型性。

c 實驗四 多型性

3 仿照標準字串類string 設計乙個自己的字串類string。主要完成以下任務 1 資料成員是字元指標,可自動適應不同的串長度。2 串複製,既可使用字串常量進行複製,也可以使用其他的字串物件進行複製。3 串賦值。既可賦值為字串常量,也可以賦值為使用其他的字串物件。4 串連線。過載 和 5 過載下...

C 實驗13 多型性

編寫程式,寫乙個shape類,該類有求表面積 get su ce 和體積 get volume 兩個虛函式 由該類派生出圓柱體cylinder,球體 sphere 正方體 cube 計算圓柱體,球體,正方體的表面積和體積。類圖如下 頭文如下 pragma once class shape shape...

C 的多型性

c 的多型性 1.多型性的概念 多型性是指用乙個名字定義不同的函式,這函式執行不同但又類似的操作,從而實現 乙個介面,多種方法 多型性的實現與靜態聯編 動態聯編有關。靜態聯編支援的多型性稱為編譯時的多型性,也稱靜態多型性,它是通過函式過載和運算子過載實現的。動態聯編支援的多型性稱為執行時的多型性,也...