多态

多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。

C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。

 

 

子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法

因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。
构建子类对象时一定会先调用父类的构造函数,子类默认调用父类的无参构造函数,当然也可以用初始化参数列表指定调用父类的构造函数

Rectangle( int a=0, int b=0):Shape(a, b) { }

 

 1 #include <iostream> 
 2 using namespace std;
 3  
 4 class Shape {
 5    protected:
 6       int width, height;
 7    public:
 8       Shape( int a=0, int b=0)
 9       {
10          width = a;
11          height = b;
12       }
13       virtual int area()
14       {
15          cout << "Parent class area :" <<endl;
16          return 0;
17       }
18 };
19 class Rectangle: public Shape{
20    public:
21       Rectangle( int a=0, int b=0):Shape(a, b) { }
22       int area ()
23       { 
24          cout << "Rectangle class area :" <<endl;
25          return (width * height); 
26       }
27 };
28 class Triangle: public Shape{
29    public:
30       Triangle( int a=0, int b=0):Shape(a, b) { }
31       int area ()
32       { 
33          cout << "Triangle class area :" <<endl;
34          return (width * height / 2); 
35       }
36 };
37 // 程序的主函数
38 int main( )
39 {
40    Shape *shape;
41    Rectangle rec(10,7);
42    Triangle  tri(10,5);
43  
44    // 存储矩形的地址
45    shape = &rec;
46    // 调用矩形的求面积函数 area
47    shape->area();
48  
49    // 存储三角形的地址
50    shape = &tri;
51    // 调用三角形的求面积函数 area
52    shape->area();
53    
54    return 0;
55 }


(31条消息) 12 C++的多态_今天也要写bug、的博客-CSDN博客_多态

 

posted @ 2023-02-21 09:01  迷人的危险~  阅读(59)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css