版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/FUZHENQI/article/details/76468037
在创建某个类的对象时,由于对该对象的状态(数据)不很明确,因此需要对其进行初始化。例如,我们要在长方形中创建一个对象,或者说新建一个长方形,那么我们首先要确定它的长和宽,假如我们无法确定它的长和宽,那么我们是无法构造出一个长方形来的。
例如,我们要构造一个长方形,由于构造函数要在创建新对象时使用,因此构造函数不可能存在与对象之后,即,我们必须在类中对它进行声明和定义。下面是一个简单的例子
#include<iostream>
using namespace std;
class rectangle //定义一个长方形类
{
public:
rectangle(int l,int w){length=l;width=w;}//**构造函数,也是内联函数,构造函数名为类名,无返回值**
int area(){return length*width;}
private:
int length;
int width;
};
int main()
{
rectangle a(3,4); //使用构造函数初始化对象a
cout<<"长方形a的面积为:"<<a.area()<<endl;
return 0;
}
构造函数的函数名为类名,无返回值,这两个特性可以帮助我们快速判断一个函数是否为构造函数。
如果
我们没有给出对象的构造函数,系统会自动创建一个构造函数,称为默认构造函数。默认构造函数的形式如下
rectangle(){}//默认构造函数
当然,我们也可以为一个对象创建多个构造函数,这里还是以一个简单的例子来说明。
#include<iostream>
using namespace std;
class rectangle
{
public:
rectangle(int l,int w){length=l;width=w;}//构造函数,也是内联函数,构造函数名为类名,无返回值
rectangle(){cout<<"不带参数的构造函数在运行...\n";}//不带参数的构造函数,为方便测试,我们让它输出一条语句
int area(){return length*width;}
private:
int length;
int width;
};
int main()
{
rectangle a(3,4);//调用带参数的构造函数,计算长方形面积=3×4=12
cout<<"长方形a的面积为:"<<a.area()<<endl;
rectangle b;//不带参数的构造函数,长方形面积为随机值
cout<<"长方形b的面积为:"<<b.area()<<endl;
return 0;
}