#pragma once
class
shape
;
#pragma once
#include
"shape.h"
#include
using
namespace std;
class
circle
:public shape
//對虛函式進行再定義
virtual
void
printarea()
const
//對虛函式進行再定義
friend ostream &
operator
<<
(ostream &
,const circle &);
//運算子過載
protected
:float radius;
};
#include
"circle.h"
circle::
circle
(float r)
:radius
(r)//定義建構函式
void circle::
setradius
(float r)
float circle::
getradius()
const
ostream &
operator
<<
(ostream &output,
const circle &c)
#pragma once
#include
"shape.h"
#include
using
namespace std;
class
rectangle
:public shape
//對虛函式進行再定義
virtual
void
printarea()
const
//對虛函式進行再定義
friend ostream &
operator
<<
(ostream &
,const rectangle &);
//運算子過載
protected
:float _x, _y;
};
#include
"rectangle.h"
rectangle::
rectangle
(float x,
float y):_x
(x),
_y(y)
void rectangle::
setxy
(float x,
float y)
float rectangle::
getx()
const
float rectangle::
gety()
const
ostream &
operator
<<
(ostream &output,
const rectangle &r)
#pragma once
#include
"shape.h"
#include
using
namespace std;
class
********
:public shape
//對虛函式進行再定義
virtual
void
printarea()
const
//對虛函式進行再定義
friend ostream &
operator
<<
(ostream &
,const ******** &);
//運算子過載
利用虛函式求面積
定義抽象基類shape,由它派生出3個派生類 circle 圓形 rectangle 長方形 和 三角形 用虛函式分別計算面積。編寫求面積和函式double totalarea const vector 該函式利用基類指標向量,它的每乙個元素指向乙個派生類的圖形物件。編寫測試直譯器,讀入各種圖形資訊...
C 學習筆記 虛函式
虛函式主要用於c 中的多型特性,對於類的繼承而言,如果用父類的指標指向子類的的物件,當用該指標操作子類物件時,該指標只能操作父類中的函式,而對於子類中特有的和過載的方法,用該指標將無法使用。案例 class base class derive public base void show 派生類獨有的...
C 學習筆記之虛函式
虛函式即在父類中成員函式錢加上virtual關鍵字,使得該成員函式具有動態鏈結屬性 因此函式具有了多型性 那麼什麼是動態鏈結呢?即程式在編譯階段不能確切知道將要呼叫的函式,只有在程式執行時才能確定將要呼叫的函式,要確切的知道呼叫的函式,要求聯編工作要在程式執行時進行,這種程式執行時進行的聯編稱之為動...