课程
/后端开发
/C++
/C++远征之封装篇(上)
// 使用new关键字,实例化对象 Student *str = new Student;
和
Student *str = new Student();
我再电脑上运行了一下,结果是一样的。但是区别是什么?
2015-08-25
源自:C++远征之封装篇(上) 4-3
正在回答
都可以,当然你要调用含参构造函数时就必须带括号了。
C++和Java不同,Java都要括号的
这两种写法对于有默认构造函数的类对象来说没有区别,但对于built-in类型是有区别的:
不带括号时,构造的对象是default initialized,对于built-in类型,这种情况下初值是不确定的。
带空括号时,对象是value initialized,对于built-in类型来说,初值一般是0。
而对于有默认构造函数的类对象,这两种写法都是调用其默认构造函数。
iNewCOS 提问者
onemoo 回复 iNewCOS 提问者
举报
封装--面向对象的基石,本教程力求帮助小伙伴们即学即会