zoukankan      html  css  js  c++  java
  • 面向对象程序设计-C++_课时16子类父类关系

    初始化列表

    类名::类名(形参1,形参2,...形参n):数据成员1(形参1),数据成员2(形参2),...,数据成员n(形参n)

    {

    ...

    }

    规则1,初始化列表进行数据成员的初始化

    规则2,初始化列表进行父类的初始化

     1 #include <iostream>
     2 using namespace std;
     3 
     4 class A
     5 {
     6 private:
     7     int i;
     8 public:
     9     A(int ii) :i(ii)//初始化列表
    10     {
    11         std::cout << "A::A()" << std::endl;
    12     }
    13     ~A()
    14     {
    15         std::cout << "~A::A()" << std::endl;
    16     }
    17     void print()
    18     {
    19         std::cout << "A::print()" << i << std::endl;
    20     }
    21 
    22     void print(int i)
    23     {
    24         std::cout << i << std::endl;
    25         print();
    26     }
    27 
    28     void set(int ii)
    29     {
    30         i = ii;
    31     }
    32 };
    33 
    34 class B :public A
    35 {
    36 public:
    37     B() :A(15)
    38     {
    39         std::cout << "B::B()" << std::endl;
    40     }
    41     ~B()
    42     {
    43         std::cout << "B::~B()" << std::endl;
    44     }
    45     void print()
    46     {
    47         std::cout << "B::print()" << std::endl;
    48     }
    49     void f()
    50     {
    51         set(20);
    52         print();
    53     }
    54 };
    55 
    56 void main()
    57 {
    58     B b;
    59     b.set(10);
    60     b.print();
    61     b.f();
    62     b.A::print(200);
    63     
    64     system("pause");
    65 }

    派生类与基类都定义有构造函数时,则编译器先调用基类的构造函数,如有对象成员则执行对象成员的构造函数,最后是派生类的构造函数。析构函数与构造函数完全相反的顺序。

  • 相关阅读:
    java中重载与重写的区别
    Java中数组的初始化方式
    break和continue的区别
    do while 循环和while循环的区别
    Java注释分类
    Java中的switch语句后面的控制表达式的数据类型
    DBA_TABLES之BLOCKS AND EMPTY_BLOCKS
    show_space 脚本
    Linux 6 配置multipath
    环保创业的可行之道——Leo鉴书上66
  • 原文地址:https://www.cnblogs.com/denggelin/p/5634626.html
Copyright © 2011-2022 走看看