C++中创建对象的方式是有多重的,并不同的创建方式具有不同的意义和生命周期,对于初学者来说还是挺不友好的,今天本初学者抛砖引玉,写一点自己的理解
假如定义了一个类classExample ,里面什么都没写。首先就是这个类classExample所具有的默认的函数有四种:
- 无参构造函数 classExample()
- 拷贝构造函数 classExample(classExample & cls)
- 幅值构造函数 operator =
- 析构函数 ~classExample()
并且这四个函数是可以 被设定为 = default
而创建对象是通过构造函数创建的,有两种方式创建:
- 不通过“new”关键字,在栈上创建
- 通过关键字“new”,在堆上创建
如图所示:
第162-165行,他们都是在栈上创建对象;
第166行,是在堆上创建对象,new出来的对象必须用指针指明地址
第167行,是在栈上创建的匿名对象,它比栈上的其他非匿名对象消亡还要快。