C++ 面试题 目录

C++ 中什么是构造函数 (constructor)?

推荐答案

构造函数是C++中的一种特殊成员函数,用于在创建对象时初始化对象的状态。构造函数的名称与类名相同,且没有返回类型。它在对象创建时自动调用,确保对象在首次使用时处于有效的初始状态。

本题详细解读

构造函数的定义

构造函数的主要目的是初始化对象的成员变量。它的定义形式如下:

构造函数的特性

  1. 与类同名:构造函数的名称必须与类的名称完全相同。
  2. 无返回类型:构造函数没有返回类型,甚至不能使用void
  3. 自动调用:当创建类的对象时,构造函数会自动调用。
  4. 可以重载:一个类可以有多个构造函数,只要它们的参数列表不同。

构造函数的类型

  1. 默认构造函数:没有参数的构造函数。如果用户没有定义任何构造函数,编译器会自动生成一个默认构造函数。
  2. 参数化构造函数:带有参数的构造函数,用于在创建对象时传递初始值。
  3. 拷贝构造函数:用于通过另一个同类型的对象来初始化新对象。

示例代码

-- -------------------- ---- -------
----- ------- -
-------
    --- ------

    -- ------
    --------- - -------- --

    -- -------
    ----------- ---- - ---------- --

    -- ------
    ------------- ------- ----- - ---------------- --
--

--- ------ -
    ------- -----          -- --------
    ------- ---------      -- ---------
    ------- ---- - -----   -- --------

    ------ --
-

构造函数的应用场景

  • 初始化对象:确保对象在创建时处于有效状态。
  • 资源分配:在构造函数中分配资源(如内存、文件句柄等)。
  • 参数传递:通过构造函数传递参数来初始化对象。

注意事项

  • 如果类中没有定义任何构造函数,编译器会生成一个默认构造函数。但如果定义了任何构造函数(包括拷贝构造函数),编译器将不再生成默认构造函数。
  • 构造函数不能被显式调用,只能在对象创建时自动调用。
纠错
反馈