📜  如何在 C++ 中定义类外的构造函数?(1)

📅  最后修改于: 2023-12-03 14:52:15.183000             🧑  作者: Mango

如何在 C++ 中定义类外的构造函数?

在 C++ 中,可以在类的外部定义其构造函数。这种构造函数通常是用于实现类的复杂功能以及对类的基类和成员变量进行初始化的。

定义类外的构造函数的基本语法

要在 C++ 中定义类外的构造函数,需要使用类名和作用域解析运算符“::”,另外需要注意以下几点:

  1. 函数名必须和类名相同。

  2. 构造函数不需要具有返回类型。

  3. 构造函数可以带有参数,这些参数将用于对类的成员变量进行初始化。

具体的语法可以参考以下代码:

class MyClass {
public:
    MyClass(); // 默认构造函数
    MyClass(int value); // 带参数构造函数

private:
    int myValue;
};

MyClass::MyClass() {
    myValue = 0;
}

MyClass::MyClass(int value) {
    myValue = value;
}

在这个例子中,我们分别定义了一个默认构造函数和一个带参数构造函数。在函数体中,我们对类的成员变量进行了初始化。

定义类外的构造函数的示例

下面是一个更具体的示例,展示了如何在 C++ 中定义类外的构造函数,并对类的成员变量进行初始化:

#include <iostream>

class MyClass {
public:
    MyClass(); // 默认构造函数
    MyClass(int value); // 带参数构造函数
    void printValue();

private:
    int myValue;
};

MyClass::MyClass() {
    myValue = 0;
}

MyClass::MyClass(int value) {
    myValue = value;
}

void MyClass::printValue() {
    std::cout << "myValue = " << myValue << std::endl;
}

int main() {
    MyClass obj1; // 使用默认构造函数

    MyClass obj2(10); // 使用带参数构造函数

    obj1.printValue(); // 输出 myValue = 0
    obj2.printValue(); // 输出 myValue = 10

    return 0;
}

在这个例子中,我们定义了一个名为 MyClass 的类,并分别定义了一个默认构造函数和一个带参数构造函数。在函数体中,我们分别对类的成员变量进行了初始化。最后,在主函数中我们实例化了两个 MyClass 对象,并分别使用了默认构造函数和带参数构造函数进行初始化。我们最终输出了这两个对象的值,以证明它们都成功地被初始化了。