课程
/后端开发
/C++
/C++远征之封装篇(上)
Student *p = new Student() 和 Student *p = new Student;
有什么区别么,都是可以运行的呀
2015-07-20
源自:C++远征之封装篇(上) 5-1
正在回答
不加括号代表默认初始化(default initialize),类型后加上空括号代表值初始化(value initialize)。
对于有构造函数的类,这两种形式都是调用其默认构造函数。没有区别。
但对于built-in类型,由于没有默认构造函数,所以默认初始化会导致初值未定。而值初始化则一般会初始化为0。
一些string类型的字符串. 他们不是初始化null的么
意思就是在对于有构造函数的类 加与不加()都是没关系的;
而对于没有构造函数的类,
加()会初始化对象的值,也就是String = null,int/float/double = 0,
不加()则不会,值就会随编译器而定;
这样理解对么?
onemoo
举报
封装--面向对象的基石,本教程力求帮助小伙伴们即学即会
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号