📜  C ++ |构造函数|问题17(1)

📅  最后修改于: 2023-12-03 15:13:45.127000             🧑  作者: Mango

C++ | 构造函数 | 问题17

在C++编程中,构造函数是用于初始化对象的特殊函数。它们具有与类相同的名称,没有返回类型,并在创建类的新实例时自动调用。当我们创建一个对象时,构造函数将负责为对象的成员变量设置初始值。

问题17涉及到多个类的构造函数之间的调用与继承。以下是一个示例代码片段,展示了如何使用构造函数解决这个问题。

#include <iostream>
using namespace std;

// 基类
class BaseClass {
protected:
    int num;
public:
    // 默认构造函数
    BaseClass() {
        num = 0;
    }
    
    // 带参数的构造函数
    BaseClass(int n) {
        num = n;
    }
    
    void display() {
        cout << "BaseClass: " << num << endl;
    }
};

// 派生类
class DerivedClass : public BaseClass {
public:
    // 默认构造函数
    DerivedClass() : BaseClass() {
        // 这里也可以对派生类的成员变量进行初始化
    }
    
    // 调用基类带参数的构造函数
    DerivedClass(int n) : BaseClass(n) {
        // 这里也可以对派生类的成员变量进行初始化
    }
};

int main() {
    // 创建一个基类对象
    BaseClass base;
    base.display();
    
    // 创建一个派生类对象
    DerivedClass derived;
    derived.display();
    
    // 使用带参数的构造函数创建派生类对象
    DerivedClass derivedWithParam(100);
    derivedWithParam.display();
    
    return 0;
}

在示例代码中,我们定义了一个基类 BaseClass 和一个派生类 DerivedClass。基类中有两个构造函数,一个是默认构造函数,另一个是带参数的构造函数。派生类使用冒号 : 语法来调用基类的构造函数。

main 函数中,我们分别创建了一个基类对象 base 和一个派生类对象 derived。还使用带参数的构造函数创建了另一个派生类对象 derivedWithParam。然后我们调用了 display 函数来显示各个对象的成员变量。

这个例子演示了如何在派生类的构造函数中调用基类的构造函数。这是C++中的一种常见用法,可以确保类对象的成员变量被正确初始化。

希望这个C++构造函数问题17的示例对您有所帮助!