析构函数和构造函数未配对

发布于 科技 2024-07-28
8个回答
  1. 匿名用户2024-01-31

    有些程序肯定说它被建造了三次,解构了三次。

    我运行了您的程序,结果如下:

    thsths

    overoverover

    按任意键继续,你会说这显然是建造了两次,摧毁了三次吗?

    原因是 peson 默认有一个复制构造函数,当你调用 setage2 函数传递值时,你调用 person 默认复制构造函数来构造一个对象 a,因为调用函数时会解构 a。 因此,它实际上构造了三次,解构了三次,但您看不到默认的复制构造函数为您打印信息。

    每个类都有一个析构函数,至少一个构造函数,甚至您未显示的定义构造函数也有一个默认的复制构造函数。

  2. 匿名用户2024-01-30

    它不必成对,建造和破坏都可以存在。 但是在一个函数中,只能有一个析构函数。

    因为析构函数是无参数的,没有返回值,所以从C函数重载原理可以看出,这样的函数只能有一个。

    构造函数可以根据参数重载,因此可以有多个构造函数。

  3. 匿名用户2024-01-29

    ;void person::setage2(person a)age = ;

    在这样做的过程中,他们实际上共享了一段记忆,当然他们解构了一次。

    尝试一次,看看它是否溶解了两次。

  4. 匿名用户2024-01-28

    一个类中可以有多个构造函数,并且只有一个析构函数。

    构造函数是一种特殊方法。 它主要用于在创建对象时初始化对象,即为对象成员变量赋值初始值,并且始终与创建对象的语句中的 new 运算符一起使用。 一个特定的类可以有多个构造函数,这些构造函数可以通过参数的数量或参数的类型来区分,即构造函数的重载。

    析构函数名称也应与类名相同,但函数名前面有一个位逆变器,不能有任何参数且没有返回值(包括 void 类型)。 析构函数与构造函数相反,在对象结束其生命周期时自动执行析构函数,例如,当对象所在的函数已被调用时。 所以只能有一个析构函数,不能过载。

  5. 匿名用户2024-01-27

    可以有多个构造函数,因为它可以重载。

    至于析构函数,只有一个。

  6. 匿名用户2024-01-26

    您可以有多个构造函数,只有一个析构函数。

  7. 匿名用户2024-01-25

    析构函数与构造函数相反,当对象超出其作用域时(例如,当对象所在的函数已被调用时)自动执行析构函数。 析构函数通常用于进行“清理”。

    (例如,创建一个带有 new 的对象以打开一段内存空间,在退出之前,应该在析构函数中使用 delete 释放该空间)。

  8. 匿名用户2024-01-24

    关于析构函数的论点是不正确的。 基圈。

    a.只有一个析构函数。

    b.析构函数没有任何函数类型。

    c.析构函数与构造函数一样,可以具有有形参数。

    d.析构函数的功能是在系统释放对象之前进行一些内存清理。

    正确答案:析构函数和构造函数一样,可以有有形的参数。

相关回答
7个回答2024-07-28

1. 构造函数。

并且析构函数不能被继承。 构造函数和析构函数用于处理对象的创建和销毁,它们只知道如何处理特定级别的对象。 因此,必须调用整个层次结构中的所有构造函数和析构函数,并且不能继承。 >>>More

7个回答2024-07-28

回避这个问题。 析构函数就是摧毁一个对象。

12个回答2024-07-28

在析构函数中创建下一个断点。 看看就知道了。 在 & |,则对引用进行解构。 将显示删除指针。 返回类型中的引用与浅拷贝无关。

13个回答2024-07-28

与构造函数相比,析构函数在对象超出其作用域时自动执行析构函数,例如当对象所在的函数已被调用时。 析构函数通常用于完成“清理余波”的工作(例如,创建一个带有 new 的对象以打开一段内存空间,该内存空间应在析构函数中释放,然后退出)。 >>>More

5个回答2024-07-28

方法重载也可以应用于 c 中的构造函数。 C 具有默认构造函数,您还可以使用参数定义构造函数。 构造函数必须与类同名,并且不能具有返回值。 因此,C 构造函数重载等价于不同数量的参数方法重载。 >>>More