C++:构造函数的重载
函数重载指的是函数名相同执⾏相同的功能的函数,但是形参名,形参个数是不相同的。
构造函数指的是函数名和类名是相同的函数。构造函数是在对象建⽴时⾃动调⽤的函数。如果在定义类的时候没有在类⾥⾯定义构造函数,那么系统会⾃动的⽣成⼀个构造函数,但是这个构造函数⾥的函数体是空的,所以该构造函数不执⾏任何的功能。
#include<iostream>
using namespace std;
class Rectangle{
public:
Rectangle();
Rectangle(int);
Rectangle(int,int);
int cul();
private:
int length;
int width;
};
Rectangle::Rectangle(){
length=1;
width=1;
}
Rectangle::Rectangle(int w){
length=width=w;
}
Rectangle::Rectangle(int l,int w){
length=l;
width=w;
}
int Rectangle::cul(){
return length*width;
}
int main(){
构造函数可以被重载Rectangle rec1;
cout<<rec1.cul()<<endl;
Rectangle rec2(2);
cout<<rec2.cul()<<endl;
Rectangle rec3(10,6);
cout<<rec3.cul()<<endl;
return 0;
}
解释:
(1)在类⾥声明了构造函数,构造函数和类是同名的。
(2)因为本代码在类外定义了函数,语法与在类的内部定义函数不同。
在类的内部定义函数:
返回值类型 函数名(形参){
}
int add(int a,int b){
}
在类外部定义函数:
返回值类型 类名::函数名(形参){
}
int Rectangle::add(int a,int b){
}
但是如果在类⾥⾯定义了⼀个所有参数都带默认值的构造函数,这个时候就不能再重新定义重载的构造函数。所以尽量使重载构造函数与带默认值的构造函数不同时出现。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。