溫馨提示×

c++默認構造函數怎樣重載

c++
小樊
90
2024-11-19 12:05:41
欄目: 編程語言

在C++中,重載默認構造函數需要定義一個新的構造函數,它接受與默認構造函數相同的參數列表。默認構造函數通常用于初始化對象時不需要任何參數的情況。重載默認構造函數可以讓你的類在創建對象時有更多的靈活性。

以下是一個簡單的例子,展示了如何為一個名為Person的類重載默認構造函數:

#include <iostream>
#include <string>

class Person {
public:
    // 默認構造函數
    Person() : name(""), age(0) {
        std::cout << "Default constructor called for " << name << std::endl;
    }

    // 重載默認構造函數,接受一個std::string參數
    Person(const std::string& name) : name(name), age(0) {
        std::cout << "Overloaded default constructor called for " << name << std::endl;
    }

    // 其他成員函數和變量
    void setName(const std::string& newName) { name = newName; }
    void setAge(int newAge) { age = newAge; }
    std::string getName() const { return name; }
    int getAge() const { return age; }

private:
    std::string name;
    int age;
};

int main() {
    // 使用默認構造函數創建對象
    Person person1;

    // 使用重載的默認構造函數創建對象
    Person person2("Alice");

    return 0;
}

在這個例子中,我們定義了兩個Person類的構造函數。第一個是默認構造函數,它不接受任何參數,并將nameage初始化為默認值。第二個構造函數接受一個std::string參數,并將name初始化為該參數值,同時將age初始化為默認值。當我們在main函數中創建Person對象時,可以根據需要選擇使用哪個構造函數。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女