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

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

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

在面向对象编程中,构造函数是一个特殊的函数,用于创建对象时初始化对象的成员变量。在C++中,每个类都可以有一个或多个构造函数,这些构造函数可以提供不同的初始值或参数。

问题14:如何在一个类中使用多个构造函数?

在一个类中可以定义多个构造函数,这些构造函数有不同的参数列表,可以用来提供不同的初始化选项。以下是一个示例代码:

#include <iostream>
using namespace std;

class Rectangle {
private:
    int length;
    int width;

public:
    Rectangle() {
        length = 0;
        width = 0;
    }

    Rectangle(int l) {
        length = l;
        width = 0;
    }

    Rectangle(int l, int w) {
        length = l;
        width = w;
    }

    int getLength() { return length; }

    int getWidth() { return width; }

    int getArea() { return length * width; }
};

int main() {
    Rectangle r1;
    Rectangle r2(4);
    Rectangle r3(2, 6);

    cout << "Rectangle 1: " << r1.getLength() << "x" << r1.getWidth() << " = " << r1.getArea() << endl;
    cout << "Rectangle 2: " << r2.getLength() << "x" << r2.getWidth() << " = " << r2.getArea() << endl;
    cout << "Rectangle 3: " << r3.getLength() << "x" << r3.getWidth() << " = " << r3.getArea() << endl;

    return 0;
}

在这个示例中,Rectangle类有三个构造函数:

  • 默认构造函数 Rectangle(),它将length和width初始化为0。
  • 带一个参数的构造函数 Rectangle(int l),它将length初始化为l,width初始化为0。
  • 带两个参数的构造函数 Rectangle(int l, int w),它将length初始化为l,width初始化为w。

在main函数中,我们分别用这三个构造函数创建了三个Rectangle对象,并调用了getLength,getWidth和getArea函数来获取它们的属性和面积。

输出结果为:

Rectangle 1: 0x0 = 0
Rectangle 2: 4x0 = 0
Rectangle 3: 2x6 = 12

从输出结果可以看出,我们可以使用不同的构造函数来创建Rectangle对象,并且每个对象都有不同的属性值。