码迷,mamicode.com
首页 > 编程语言 > 详细

面向对象程序设计-C++_课时16子类父类关系

时间:2016-07-02 01:48:03      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

 

初始化列表

类名::类名(形参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 }

 

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

 

面向对象程序设计-C++_课时16子类父类关系

标签:

原文地址:http://www.cnblogs.com/denggelin/p/5634626.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!