在面向對象的思想中,類的概念是對現實世界的描述。很多事物都有一些共同的特點,抽象出來,即歸爲一類。抽象類就是這樣的一類事物的框架,它包含了這些事物之間共同的最基本的屬性和特點。反過來看,由抽象類這樣的框架,可以衍生出各種各樣的類。
在C++語言中,抽象類的定義是包含了純虛函數的類,而純虛函數是聲明爲virtual的沒有定義的類成員函數。
注意:抽象類不能實例化。
case:
#include <iostream>
using namespace std ;
class figure
{
public:
virtual double get_area()=0 ;
protected:
double x_size, y_size ;
} ;
class triangle: public figure
{
public:
triangle(double x, double y)
{
x_size = x ;
y_size = y ;
}
double get_area()
{
return (x_size*y_size)/2 ;
}
};
class rectangle: public figure
{
public:
rectangle(double x, double y)
{
x_size = x ;
y_size = y ;
}
double get_area()
{
return (x_size * y_size) ;
}
};
class circle: public figure
{
public:
circle(double x)
{
PI = 3.14 ;
x_size = x ;
}
double get_area()
{
return PI*x_size*x_size ;
}
private:
double PI ;
};
int main()
{
class figure obj ; //error : 抽象類不能實例化
class triangle obj1(10,10) ;
cout << obj1.get_area() << endl ;
class rectangle obj2(10,10) ;
cout << obj2.get_area() << endl ;
class circle obj3(10) ;
cout << obj3.get_area()<< endl ;
return 0 ;
}