2 qq 34204094 qq_34204094 于 2016.03.29 16:08 提问

构造函数的作用。。。。。。

构造函数具有初始化内存的作用但是我查资料说它具有开辟内存的作用!就搞不懂 因为在函数执行时已经传入指向实例对象的this指针 那应该表明在调用构造函数以前已经开辟的内存 那么构造函数就没有开辟空间的作用了?

5个回答

as413740611
as413740611   2016.03.29 16:25

构造函数是一个特殊的函数,它的函数名与类名相同,没有返回值,构建对象时会自动调用一次
构造对象时会自动调用一次,目的是为了完成对象被创建过程。
那我们来看看对象被创建的过程:
1.处理成员变量
a.如果成员变量是基本类型, 则使用内存中的值
b.如果成员变量是类类型,创建它
2.调用构造函数

mlw519
mlw519   2016.03.29 16:28

初始化与开辟内存是两个概念。
class A
{
private:
int i;
};

你如果 A a = A();或者 A a = new A();
那么前者在栈开辟空间,后者是在堆开辟空间。
而A()后面的括号就说明调用构造函数,因为“A()”本省就是调用构造函数,调用构造函数就是执行构造函数体的指令。
而构造函数通常是用来初始化对象的

mlw519
mlw519   2016.03.29 16:32

在c++中与构造函数对应的是析构函数, A* a = new A();
delete a;是回收堆区内存,而调用~A()则是做回收前的处理,以防止内存泄露。

lx624909677
lx624909677   Ds   Rxr 2016.03.29 23:25

初始化一些数据用的,想知道有没有给自己开辟空间,你可以创建一个空类,然后sizeof一下就明白了

CSDNXIAOC
CSDNXIAOC   2016.03.30 11:31

构造函数主要用来初始化对象。它又分为静态(static)和实例(instance)构造函数两种类别。大家应该都了解如果来写类的构造函数,这里只说下默认构造函数的作用,以及在类中保留默认构造函数的重要性。实际上,我说错了。正确的说法是:以及在类中保留空参数构造函数的重要性。
我们来写一个类A,代码如下:
public class A
{
   public int......
答案就在这里:构造函数的作用
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!