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 //动态联编,可以定义基类的指针,指向派生类的时候可以调用其中的虚函数进行操作。

    运行结果如下:

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

  • 相关阅读:
    java wait方法
    thread join
    AtomicReference 原理
    exchanger java另一种栅栏
    CyclicBarrier 栅栏 原理,应用场景
    信号量Semaphore
    FutureTask 解析
    CountDownLatch
    java 双端队列 Deque
    lockInterruptibly 和lock 原理
  • 原文地址:https://www.cnblogs.com/jeavenwong/p/8098453.html
Copyright © 2011-2022 走看看