/*
date: 14/03/21 20:33
description: 純虛函式與抽象類
純虛函式
抽象類-抽象資料型別
任何包含乙個或多個純虛函式的類都是抽象類
不要建立這個類的物件,應該繼承它
務必覆蓋從這個類繼承的純虛函式
實現純虛函式
c++介面
就是只包含純虛函式的抽象基類
*/#include
using
namespace std;
class
shape
virtual
~shape()
virtual
double
getarea()
=0;virtual
double
getperim()
=0;virtual
void
draw()
=0;}
;void shape::
draw()
class
circle
:public shape
virtual
~circle()
double
getarea()
//只要有乙個成員函式是虛函式,那麼析構函式也必須做成虛函式
double
getperim()
void
draw()
;private
:double radius;};
void circle::
draw()
class
rectangle
:public shape
virtual
~rectangle()
double
getarea()
double
getperim()
void
draw()
;virtual
intgetlength()
virtual
intgetwidth()
private
:int width;
int length;};
void rectangle::
draw()
cout<<
"\n";}
}class
square
:public rectangle
double
getperim()
};square::
square
(int len)
:rectangle
(len,len)
//這種派生類建構函式 呼叫 基類建構函式的方法
square::
square
(int len,
int wid)
:rectangle
(len,wid)
}int
main()
if(fquit==
false)}
return0;
}
/*
date: 15/03/21 11:42
description:
*/#include
using
namespace std;
enum color
;class
animal
virtual
intgetage()
const
virtual
void
setage
(int age)
virtual
void
sleep()
const=0
;virtual
void
eat(
)const=0
;virtual
void
reproduce()
const=0
;virtual
void
move()
const=0
;virtual
void
speak()
const=0
;private
:int age;};
animal::
animal
(int age)
:age
(age)
class
mammal
:public animal
virtual
~mammal()
virtual
void
reproduce()
const};
class
fish
:public animal
virtual
~fish()
virtual
void
sleep()
const
virtual
void
eat(
)const
virtual
void
reproduce()
const
virtual
void
move()
const
virtual
void
speak()
const};
class
horse
:public mammal
virtual
~horse()
virtual
void
sleep()
const
virtual
void
eat(
)const
virtual
void
move()
const
virtual
void
speak()
const
virtual color getcolor()
const
protected
: color color;};
class
dog:
public mammal
virtual
~dog()
virtual
void
sleep()
const
virtual
void
eat(
)const
virtual
void
reproduce()
const
virtual
void
move()
const
virtual
void
speak()
const
protected
: color color;};
intmain()
if(fquit==
false)}
return0;
}
C 純虛函式與抽象類
純虛函式 純虛函式 在基類中將某一成員函式定為虛函式,並不是基類本身的需要,而是考慮到派生類的需 要,在基類中預留了乙個函式名,具體功能留給派生類根據需要去定義。純虛函式是在宣告虛函式時被 初始化 為0的函式。一般形式為 virtual 函式型別 函式名 引數列表 0 如 virtual float...
C 純虛函式與抽象類
在很多的情況下,在基類中一般都不能給出虛函式的具體而有意義的定義,這時我們就可以將它說明為純虛函式。它的具體的定義由它的派生類具體完成,這樣可以使類之間的結構更加清晰,同時也更容易理解。含有純虛函式的類叫抽象類。說明純虛函式的一般格式 class 類名 virtual 返回值型別 函式名 引數列表 ...
C 純虛函式與抽象類
參考 純虛函式 是一種特殊的虛函式,是基類中只有宣告,無 法實現 定義的虛函式。含有純虛函式的類稱為 抽象類 ifndef purevir h define purevir h define pi 3.14159 namespace purev 基類為 抽象類 的派生類都必須定義自己的,和純虛函式同...