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;
 }

运行截图

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

运行截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值