【问题标题】:Can we say Constructor Creates Objects?我们可以说构造函数创建对象吗?
【发布时间】:2015-05-09 09:49:41
【问题描述】:

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

【问题讨论】:

    标签: c++ class constructor


    【解决方案1】:

    在 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 obj = new a(); 在上面的代码中 你的 obj 被创建内存 obj 在堆栈中分配,然后构造函数 代码正在执行

      【讨论】:

      • 在堆上为其成员分配所需内存是任何构造函数的默认函数,然后由实际命名为对象的引用指针相应地访问。
      猜你喜欢
      • 1970-01-01
      • 2015-05-22
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      相关资源
      最近更新 更多