本教程将通过一些示例介绍 C++ 中的构造函数重载。要完全理解构造函数重载,首先理解构造函数的概念非常重要。构造函数是一种特殊的方法,每当我们构造一个类对象时,它们都会自动调用。初始化新对象的数据成员是构造函数的主要目标。与函数重载类似,构造函数也可以重载。
重载构造函数与类名相同,但它们接受不同数量的参数。根据传递的参数数量和类型,会调用相应的构造函数。你将了解所有关于
只要 C++ 中每个构造函数都有唯一的参数列表,我们就可以在一个类中拥有多个同名构造函数。这个概念被称为构造函数重载。
每个构造函数都与类同名,但它们因参数数量、参数数据类型或两者的组合而异。在 C++ 中使用构造函数重载时,我们可以在同一个类中拥有多个构造函数,只要它们各自接受不同的参数集,这与函数重载非常相似。
构造函数重载是指在一个类中拥有多个具有不同参数的构造函数的概念。这里需要记住的关键点是,构造函数将根据参数执行。例如,如果一个程序包含三个构造函数,分别带有 0 个参数、一个参数和两个参数,那么如果我们向构造函数提供一个参数,编译器将运行接受一个参数的构造函数。
#include <iostream>
using namespace std;
class Complex
{
int a, b;
public:
Complex(){
a = 0;
b =0;
}
Complex(int x, int y)
{
a = x;
b = y;
}
Complex(int x){
a = x;
b = 0;
}
void printNumber()
{
cout << " So your number is " << a << " + " << b << "i" << endl;
}
};
int main()
{
Complex c1(8, 10);
c1.printNumber();
Complex c2(9);
c2.printNumber();
Complex c3;
c3.printNumber();
return 0;
}
输出
So your number is 8 + 10i So your number is 9 + 0i So your number is 0 + 0i
解释
函数重载用于使程序更易于阅读。在使用函数重载时,不必为相同的操作使用不同的名称。C++ 中的函数重载是通过调用多个同名但参数不同的函数来实现的。
运算符重载用于对同一个操作数执行多种操作。运算符重载涉及对用户定义的数据类型执行操作,以增加 C++ 运算符的数量。
C++ 中构造函数重载的优点是,通过在一个类中拥有额外的构造函数,可以创建属于该类的多种类型的对象。事实上,它类似于编译时多态性,编译时多态性是 C++ 函数重载的另一个名称。因此,如果我们要以不同的方式构造对象,C++ 需要构造函数重载。