您现在的位置是:首页 > 编程 > 

成员初始化表的执行顺序与顺写顺序无关

2025-07-22 01:05:08
成员初始化表的执行顺序与顺写顺序无关 成员初始化表的执行顺序与速写顺序无关首先给出结论,c++的成员初始化表的初始化,顺序与没有关系,有关系的是构造函数中,变量书写的顺序,越上面的越先初始化。演示代码:代码语言:javascript代码运行次数:0运行复制#include<bits/stdc++.h> using namespace std; class Student {

成员初始化表的执行顺序与顺写顺序无关

成员初始化表的执行顺序与速写顺序无关

首先给出结论,c++的成员初始化表的初始化,顺序与没有关系,有关系的是构造函数中,变量书写的顺序,越上面的越先初始化。

演示代码

代码语言:javascript代码运行次数:0运行复制
#include<bits/stdc++.h>  
using namespace std;  

class Student
{
  int age;
  int year;
  int birthYear;
  public:Student(int,int);   
};  

Student::Student(int x ,int y): year(x), birthYear(y),age(year - birthYear) 
{
  cout<<"age = "<<age<<endl;
  cout<<"year = "<<year<<endl;
  cout<<"birthYear = "<<birthYear<<endl;
  /*
	age = 0         // 运行结果age这里为0,因为按照构造函数的顺序,
					// age在上面,应该是age先初始化,所以age(year-birthYear)先运行,
					// 但是这个时候,year,birthYear都还没有初始化,默认为0,所以age最后为0
	year = 2014
	birthYear = 1976
	*/
}

int main()
{
    Student* p = new Student (2014,1976);
    delete p;   
    return 0;
}

正确写法

代码语言:javascript代码运行次数:0运行复制
#include<bits/stdc++.h>  
using namespace std;  

class Student
{
  int year;
  int birthYear;
  int age;
  public:Student(int,int);   

};  

Student::Student(int x ,int y): year(x), birthYear(y),age(year - birthYear) 
{
  cout<<"age = "<<age<<endl;
  cout<<"year = "<<year<<endl;
  cout<<"birthYear = "<<birthYear<<endl;
}

int main()
{
    Student* p = new Student (2014,1976);
    delete p;   
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent 删除intstd变量c++cout

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1152735.html

相关标签:无
上传时间: 2025-07-20 02:27:00
留言与评论(共有 20 条评论)
本站网友 熔盛重工破产
29分钟前 发表
有关系的是构造函数中
本站网友 免费听歌网
17分钟前 发表
因为按照构造函数的顺序
本站网友 k237
9分钟前 发表
应该是age先初始化
本站网友 天将孝门
16分钟前 发表
有关系的是构造函数中
本站网友 batterycare
3分钟前 发表
本站网友 龙芯电脑
17分钟前 发表
int); }; Student
本站网友 女同舌吻
18分钟前 发表
birthYear都还没有初始化
本站网友 深圳证券交易所融资融券交易实施细则
21分钟前 发表
因为按照构造函数的顺序
本站网友 怎么戴假发
28分钟前 发表
1976); delete p; return 0; }本文参与 腾讯云自媒体同步曝光计划
本站网友 上海野生动物园团购
9分钟前 发表
本站网友 萌日
28分钟前 发表
因为按照构造函数的顺序
本站网友 西安房屋租赁
9分钟前 发表
有关系的是构造函数中
本站网友 决明子茶的功效
5分钟前 发表
因为按照构造函数的顺序
本站网友 翡翠手镯
15分钟前 发表
1976); delete p; return 0; }正确写法:代码语言:javascript代码运行次数:0运行复制#include<bits/stdc++.h> using namespace std; class Student { int year; int birthYear; int age; public
本站网友 喜马拉雅麝
25分钟前 发表
顺序与没有关系
本站网友 邯郸租房网
14分钟前 发表
1976); delete p; return 0; }正确写法:代码语言:javascript代码运行次数:0运行复制#include<bits/stdc++.h> using namespace std; class Student { int year; int birthYear; int age; public
本站网友 苏大姐
24分钟前 发表
所以age最后为0 year = 2014 birthYear = 1976 */ } int main() { Student* p = new Student (2014
本站网友 湖南赫西仪器装备有限公司
27分钟前 发表
Student(int
本站网友 零陵郡
14分钟前 发表
year(x)