初始化列表的初始化顺序
构造函数初始化列表仅用于初始化成员的值,并不指定这些初始化执行的次序。成员被初始化的次序就是定义成员的次序。第一个被定义的成员先被初始化,依次类推。一般,初始化的顺序无关紧要,然而,如果一个成员是根据其他成员而初始化,则成员的初始化顺序是至关重要的。
class x {
int i;//声明顺序是先i,后j,故初始化列表中,会先初始化i,在初始化j
int j;
public:
x(int tem): j(tem),i(j){} //看起来是先初始化j,然后初始化i,其实恰恰相反,先用未初始化的j来初始化i,虽然编译器不会提示你什么,但是j未初始化它便由计算机随即分配的内存存储,它的值也是随即的,这个值可能不是你想要的,错误就出现了。将i和j的声明顺序调过来就没有问题了。
};
初始化列表的初始化顺序相关推荐
- [面试] C++ 语法(一) —— 初始化列表的初始化顺序
首先来看一道经典的 C++ 面试题: (1)初始化列表的初始化顺序:不是按照列表的顺序进行的 (2)初始化列表的初始化顺序:是按照内存模型中的成员变量的顺序(也即类声明的定义顺序)进行的: (3)也即 ...
- 为什么不能在子类的初始化列表里初始化父类的成员
好几次遇到此类问题了:便不得不找些资料弄明白它: 具体代码是: 2 3 4 5 6 7 8 9 10 class A { protected: int n_; }; class B : pub ...
- C++类构造函数初始化列表及初始化成员变量的误区
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: [cpp] view plaincopy class CExample { pub ...
- 子类初始化列表不能初始化父类元素 -- class 'Derived' does not have any field named 'x'
缘由 偶尔编写如下代码,编译出错, class Base{public:int x; };class Derived : public Base {public:Derived() : x(10) { ...
- C++必须使用【初始化列表】初始化数据成员的三种情况
类对象的构造顺序是这样的: 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员: 2.进入构造函数后在构造函数中执行一般赋值与计算. 使用初始化列表有两个原因: 原因1.必须这样做: < ...
- 28.构造函数中,成员变量一定要通过初始化列表来初始化的?
首先要明确:如果对象成员是const或者引用的话,必须将其初始化! 构造函数中,成员变量一定要通过初始化列表来初始化的的几种情况! 1)对象成员是const或者引用 #include <iost ...
- C++经典问题:如果对象A中有对象成员B,对象B没有默认构造函数,那么对象A必须在初始化列表中初始化对象B?
对象成员特点总结: (1)实例化对象A时,如果对象A有对象成员B,那么先执行对象B的构造函数,再执行A的构造函数. (2)如果对象A中有对象成员B,那么销毁对象A时,先执行对象A的析构函数,再执行B的 ...
- C++成员变量初始化列表中初始化顺序
1.C++使用初始化列表初始化时,成员变量的初始化顺序:只与定义变量的顺序有关. #include <iostream> using namespace std; class A{ pri ...
- 构造函数中,成员变量一定要通过初始化列表来初始化的几种情况(转载)
1.参考博客 博客链接1 博客链接2 2.实例如下 class A { ... private:int a; }; class B : public A { ... private:A &aa ...
最新文章
- RouterOS配置脚本
- 内存数据库MemSQL ——基于内存,MVCC+哈希表、跳表
- Composer 安装(一)
- org.springframework.jdbc.core.JdbcTemplate 无法import原因分析
- 用计算机打出圣诞树,手机计算器圣诞树的祝福输入方式,手机计算器圣诞树获得方法...
- BLAS+BLACS+LAPACK+SCALAPACK安装
- 连接SQL Server文件集锦
- vue中watch数组或者对象
- PageRequestManager
- odoo 财务会计相关介绍
- C++实现离散余弦变换(参数为二维指针)
- 英文课程名称 c语言程序设计,课程名称C语言程序设计I.doc
- Python 安装pytz
- Python技术pip的使用命令总结
- Unity VRAR Unity播放全景视频及优化极点变形twist问题
- ucenter java版客户端
- 3年汽车软件测试工程师的经验总结
- SQL优化 —— in与not in
- Adobe Dreamweaver CS5下载安装
- 网上图书订阅系统之(招标书,投标书)
热门文章
- PC端微信小程序字体无法显示加粗
- 【算法】位运算——左移右移
- 一文读懂什么是POE交换机,原理、标准、功率、应用
- 生化危机系列中有实用价值且能最快实现的技术
- 品尝棉花糖之Nexus5线刷Android6.0攻略
- 面向对象编程:多态性的理论与实践
- Attention Model(注意力模型)学习大全
- 《Qt 6.x从入门到精通》简介
- 单目视觉(5):SFM之特征点匹配(四)
- 超频到3200最佳时序_XPG 龙耀 D50 重装铠甲RGB内存 来了超频颗粒、1.95mm加厚散热...