zoukankan      html  css  js  c++  java
  • C++_练习—多态_验证vptr分布初始化

    验证vptr分布初始化


    vptr指针是从父类逐渐指向子类的虚函数表

     1 // 验证vptr分布初始化
     2 
     3 #include <iostream>
     4 
     5 using namespace std;
     6 
     7 class parent {
     8 public:
     9     parent(int a) {
    10         this->a = a;
    11         cout << "parent 构造函数 =  " << a << endl;
    12         pri();
    13     }
    14 
    15     virtual void pri(void) {
    16         cout << "parent_pri =  "<< a << endl;
    17     }
    18 
    19 private:
    20     int a;
    21 };
    22 
    23 class child :public parent {
    24 public:
    25     child(int b) :parent(6) {
    26         this->b = b;
    27         cout << "child 构造函数 = " <<  b << endl;
    28         
    29     }
    30 
    31     virtual void pri(void) {
    32         cout << "child_pri  =  " << b << endl;
    33     }
    34 
    35 private:
    36     int b;
    37 };
    38 
    39 int main(void)
    40 {
    41     child chi(2);  // 先调用父类构造函数,再调用子类构造函数,所以一共调用三次构造函数
    42 
    43     // 如果我在父类的构造函数调用 pri ,则他会调用父类的pri还是子类的 pri ???
    44     parent *p = &chi;
    45 
    46     //结果调用的是父类的pri ,证明vptr指针是从父类逐渐指向子类的虚函数表
    47 
    48     system("pause");
    49 
    50     return 0;
    51 }

    笔记


  • 相关阅读:
    python's is&==区别
    python's decorator&wrapper
    objects & values & types
    linux sort命令
    partial function
    proc文件系统
    readlink 获取当前进程对应proc/self/exe
    Workgroup&Domain(Realm)
    python传值&值引用
    Unpacking Argument Lists
  • 原文地址:https://www.cnblogs.com/panda-w/p/11381207.html
Copyright © 2011-2022 走看看