概述
在构造函数的过程中,因为初始化成员列表要先于构造函数,因此在构造函数的过程中要避免将堆内存直接分配到初始化成员函数当中。因为当你初始化的时候,有时候并不清楚要分配几个数组的内存空间。
例如下面的pdatas,在堆中分配内存,因此,不能将他写成如下形式。
MyArray(int len = 1):len(len),pdatas = new int[len]
{
//由于初始化构造比len的内部参数要早,因此为了保险起见,将
//赋值的地方放在内部
};
正常一点的写法应该是下面这种。
class MyArray
{
public:
MyArray(int len = 1):len(len)
{
//由于初始化构造比len的内部参数要早,因此为了保险起见,将
//赋值的地方放在内部
pdatas = new int[len];
};
~MyArray()
{
delete[] pdatas;
pdatas = NULL;
};
private:
int* pdatas;
int len;
};
最后
以上就是积极水杯为你收集整理的C++构造函数初始化的全部内容,希望文章能够帮你解决C++构造函数初始化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复