C++学习笔记(四):构造函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}

这里写图片描述

猜你喜欢

转载自blog.csdn.net/FUZHENQI/article/details/76468037