• 纯虚函数的讨论


    纯虚函数是实现函数多态的技术手段。

    View Code
     1 #include <iostream>
    2 #include <string>
    3 using namespace std;
    4
    5 class Animal
    6 {
    7 public:
    8 virtual void play() = 0; // 纯虚函数
    9 };
    10
    11 class Dog : public Animal
    12 {
    13 public:
    14 virtual void play()
    15 {
    16 cout << "狗狗叫" << endl;
    17 }
    18 };
    19
    20 class Cat : public Animal
    21 {
    22 public:
    23 virtual void play()
    24 {
    25 cout << "猫叫" << endl;
    26 }
    27 };
    28
    29 void main()
    30 {
    31 Animal *o1,*o2;
    32 o1 = new Dog;
    33 o2 = new Cat;
    34 o1->play();
    35 o2->play();
    36
    37 delete o1;
    38 delete o2;
    39 }

    输出:

        狗狗叫
        猫叫
        请按任意键继续. . .

    通过纯虚函数play实现了多态技术。

    注意的几点:

       1、抽象类,也就是含有纯虚成员函数的类。是不可以实例化对象的。

            如:

    View Code
    1 Animal  o1; // 报错,抽象类不能实例化。
    2
    3 Animal *o1; // 不报错
    4
    5 // 从中可以看出,申明普通对象时,会申请内存;申明指针对象时,需要显示的调用new delete 或者malloc free 实现实例化。

      2、MFC、COM技术大量的使用了纯虚函数技术。

      // 还需要总结提炼

  • 相关阅读:
    正则表达式
    js trim函数 去空格函数与正则集锦
    变量的作用域问题
    for...in 语句
    JS小案例分析
    JS动态创建元素的方式
    JS类的封装
    js操作节点小结
    节点兼容
    节点小结
  • 原文地址:https://www.cnblogs.com/xuxu8511/p/2406991.html
Copyright © 2020-2023  润新知