博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++构造与析构(7) - 数据成员的初始化
阅读量:4070 次
发布时间:2019-05-25

本文共 614 字,大约阅读时间需要 2 分钟。

C++中,类成员的初始化顺序与它们的声明顺序必须一致。

反面例子:

#include
class Test{private: int y; int x;public: Test() : x(10), y(x + 10) { } void print();};void Test::print(){ std::cout << "x = " << x << " y = " << y;}int main(){ Test t; t.print(); return 0;}

运行输出结果:

x = 10 y = 1990696510

上述程序可以打印正常的x值,但是y值是不确定的。因为y值会在x之前进行初始化,而这时候x尚未初始化,是一个随机值,导致y也是随机值。

正常例子:

//解决方法1:调整声明的顺序class Test {  private:       int x;       int y;  public:    Test() : x(10), y(x + 10) {}    void print();};//解决方法2:调整初始化顺序class Test {  private:       int y;    int x;     public:    Test() : x(y-10), y(20) {}    void print();};

转载地址:http://tqeji.baihongyu.com/

你可能感兴趣的文章
fhs-framework springboot mybatis 解决表关联查询问题的关键方案-翻译服务
查看>>
ZUUL2 使用场景
查看>>
Spring AOP + Redis + 注解实现redis 分布式锁
查看>>
elastic-job 和springboot 集成干货
查看>>
php开发微服务注册到eureka中(使用sidecar)
查看>>
mybatis mybatis plus mybatis jpa hibernate spring data jpa比较
查看>>
支付宝生活号服务号 用户信息获取 oauth2 登录对接 springboot java
查看>>
CodeForces #196(Div. 2) 337D Book of Evil (树形dp)
查看>>
uva 12260 - Free Goodies (dp,贪心 | 好题)
查看>>
uva-1427 Parade (单调队列优化dp)
查看>>
【设计模式】学习笔记13:组合模式(Composite)
查看>>
hdu 1011 Starship Troopers (树形背包dp)
查看>>
hdu 1561 The more, The Better (树形背包dp)
查看>>
【设计模式】学习笔记14:状态模式(State)
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
斯坦福大学机器学习——因子分析(Factor analysis)
查看>>
项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved
查看>>
linux对于没有写权限的文件如何保存退出vim
查看>>
Windows下安装ElasticSearch6.3.1以及ElasticSearch6.3.1的Head插件
查看>>
IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结
查看>>