zoukankan      html  css  js  c++  java
  • 初学c++动态联编

    先看一下什么是C++联编?

    我觉得通俗的讲,用对象来访问类的成员函数就是静态联编。

    那什么是动态联编:

    一般是通过虚函数实现动态联编。

    看一个动态联编的例子:

     

    我比较懒,所以直接粘贴了MOOC视频的图片。

     看一个动态联编的例子:

     1 #include <iostream>
     2 #include <string>
     3 using namespace std;
     4 
     5 class Base
     6 {
     7     public:
     8         virtual void print()  //虚函数
     9         {
    10             cout<<"Base..."<<endl;
    11         }
    12 };
    13 
    14 class Derive : public Base
    15 {
    16     public:
    17         void print()           //虽然没有标注virtual,但是因为和基类中的虚函数函数同名,所以默认虚函数
    18         {
    19             cout<<"Derive..."<<endl;
    20         }
    21 };
    22 
    23 void display(Base* p)   //复制兼容原则,基类类型的指针也可以指向派生类。
    24 {
    25     p->print();
    26 }
    27 
    28 int main()
    29 {
    30     Base a;
    31     Derive b;
    32     display(&a);  //调用基类的print函数
    33     display(&b);   //调用派生类的print函数
    34     return 0;
    35 }
    36 
    37 //动态联编,可以定义基类的指针,指向派生类的时候可以调用其中的虚函数进行操作。

    运行结果如下:

    如有错误,欢迎批评指正哈。

  • 相关阅读:
    转贴"三个月内通过Adsense赚一百万美金"
    今天申请了Google Adsense
    Asp.Net Core 多样性的配置来源
    Identity第二章
    Identity第一章
    Identity第三章 Authorize原理解析
    async和await
    ASP.Net Core简介
    【学习笔记】后缀数组 SA
    题解 [NOI2009] 植物大战僵尸
  • 原文地址:https://www.cnblogs.com/jeavenwong/p/8098453.html
Copyright © 2011-2022 走看看