有关构造函数与new的一些问题
首先我提一个问题:构造函数有没有申请内存空间的能力? 一般情况下是当产生一个动态对象时是有new来产生的,而构造函数只是对对象进行初始化,也就是先有new来申请存储对象的内存空间,然后执行构造函数对对象进行初始化,
《有些书上比较间接的说明构造函数有申请内存空间的能力》
第一:
class Point{ } ; //省去类体部分,只说明Point为一个类
Point * p=new Point();
所产生的对象的内存空间是new申请的还是构造函数申请的,
如果是new申请的,那构造函数只是对对象进行初始话,没有对存储对象的空间做什么;
如果是构造函数申请的,那new作为一个函数又有什么用呢?难道只是返回一个指针而已吗?
第二:
class Point
{
string * p;
.....
......
......
};
Point:: Point(Point& ) // 深拷贝
{
Delete p;
p=new string [20];
}
当类里面有指针的情况下,采用深拷贝的到的对象的空间比采用浅拷贝的空间要大一个数据项,
这是否意味着构造函数对对象的大小进行了扩充???
[[it] 本帖最后由 情结 于 2008-10-25 17:29 编辑 [/it]]