抽象類

   在面向對象的思想中,類的概念是對現實世界的描述。很多事物都有一些共同的特點,抽象出來,即歸爲一類。抽象類就是這樣的一類事物的框架,它包含了這些事物之間共同的最基本的屬性和特點。反過來看,由抽象類這樣的框架,可以衍生出各種各樣的類。

   在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 ;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章