C++备考(五)初始化

学习没有捷径,但考试有捷径

临近考试,虽然之前对一些概念搞清楚了,但时日一长,很多又模糊了。因此利用整理成章,将知识重拾。
考试的范围如下:

  1. 常量(const、符号、字符串常量、立即数)
  2. 引用和指针
  3. 类的封装和隐藏(静态成员、友元函数)
  4. 类的初始化(初始化方式和顺序)
  5. 类的继承(继承方式、构函列表、多继承)
  6. 类的多态性(函数重载、运算符重载、虚函数、虚函数表)
  7. 类的作用域概念

顺序规则

先长辈,再客人,最后自己

即:先初始化继承基类,再初始化成员对象,最后初始化自身数据成员

对象数组

初始化,可使用

  • 初始化列表
  • 构造函数
  • 类型转换函数(单个参数)

元素不得为不同类的对象

A a[5] = { 2,4,5,3,6 };
a[1] = A(9);
a[2] = 3;

按照数组排列顺序构造,反序析构
运行截图

对象成员

一个类的对象做为另一个类的成员,叫做对象成员,另一个类叫容器类。
先初始化对象成员,再初始化容器类
不为容器类提供默认构函

 
 A ac; 
 B()
 {
  cout << "constructor of B" << endl;
  b = 0;
  ac=A(0);
  cout << "set b to 0" << endl;
 }
 B(int b) :b(b), ac(b-4)
 {
  	cout << "constructor of B" << endl;
  	cout << "set b to " << b << endl;
 }
 ~B()
 {
  	cout << "b is " << b << endl;
  	cout << "destructor of B" << endl;
 }

运行截图

  • 自动对象,定义构造,离开定义域析构
  • 内部静态成员,从定义开始构造,程序结束析构
  • 外部对象,外部静态成员,程序运行构造,程序结束析构

运行截图

发布了30 篇原创文章 · 获赞 2 · 访问量 785

猜你喜欢

转载自blog.csdn.net/cascara/article/details/103072507