我们可以说构造函数创建对象吗?

3

有人告诉我构造函数创建对象。但是在互联网上搜索,我发现构造函数是在创建对象时执行的。您能解释一下这个问题吗?我是C++新手。

2个回答

7
在C++中,构造函数是一种特殊的类成员函数,当该类的对象被实例化时执行它。构造函数通常用于将类的成员变量初始化为适当的默认值,或者使用户轻松地将这些成员变量初始化为所需的任何值。
因此,当您调用构造函数时,您已经有了一个实例化的对象,因此构造函数不会创建对象,也不会创建对象的变量,只是用于初始化该对象内部的变量(或在使用对象之前执行一些任务)。
编辑:此外:
构造函数按以下顺序执行其工作:
1. 按声明顺序调用基类和成员构造函数。 2. 如果该类从虚拟基类派生,则初始化对象的虚拟基指针。 3. 如果类具有或继承虚拟函数,则初始化对象的虚拟函数指针。虚函数指针指向类的虚函数表,以启用将虚函数调用正确地绑定到代码。 4. 执行其函数体中的任何代码。
请参考以下链接获取更多信息:http://www.learncpp.com/cpp-tutorial/85-constructors/, https://msdn.microsoft.com/en-us/library/s16xw1a8.aspx, https://isocpp.org/wiki/faq/ctors

2
在上面的代码中,class a{int a = 0;int b = 0;}定义了一个名为a的类,该类有两个整型成员变量a和b,初始值均为0。接着执行a obj = new a();代码,创建了一个名为obj的a类对象,该对象在堆栈中分配了内存,并且将执行构造函数代码。

任何构造函数的默认功能是为其成员在堆上分配所需的内存,然后通过名为对象的引用指针相应地访问它。 - Pranav Labhe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接