成员初始化表的执行顺序与顺写顺序无关
成员初始化表的执行顺序与顺写顺序无关
成员初始化表的执行顺序与速写顺序无关首先给出结论,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组装电脑配置单推荐报价格
上传时间: 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) |