一、new 及局限性
1.1 new单个对象
对一个对象执行new运算将会:
- 在自由空间分配对象空间
- 执行默认构造函数构造对象
- 返回一个指向无名空间的对象指针
对于内置类型或组合类型(指针、引用)其对象的值是未定义的,对于有默认初始化的类将会执行默认构造。此外,我们可以在对象名后加上小括号,括号的内容是实例化的对象,通常可以是临时对象。
A * pa=new A(A(1,2,3));//利用A(int,int,int)构造方法构造这个对象
int * pint=new int(4);//临时的4常量构造
1.2 new对象数组
A* pa=new A[10]
,和单个对象一样,数组中的每个对象都将会默认执行默认构造,如果想要对各个对象特定构造函数的话就会用到初始化列表这个方法:
class A
{
public:
A() { std::cout
关注
打赏