桂 林 理 工 大 學
實 驗 報 告
實驗名稱 多型性 日期 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.多型性的概念 多型性是指用乙個名字定義不同的函式,這函式執行不同但又類似的操作,從而實現 乙個介面,多種方法 多型性的實現與靜態聯編 動態聯編有關。靜態聯編支援的多型性稱為編譯時的多型性,也稱靜態多型性,它是通過函式過載和運算子過載實現的。動態聯編支援的多型性稱為執行時的多型性,也...