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){
}

但是如果在类里面定义了一个所有参数都带默认值的构造函数,这个时候就不能再重新定义重载的构造函数。所以尽量使重载构造函数与带默认值的构造函数不同时出现。

发布了31 篇原创文章 · 获赞 2 · 访问量 3836

猜你喜欢

转载自blog.csdn.net/weixin_44652687/article/details/101100410