c++ 构造函数和析构函数

一、构造函数

1.构造函数有什么用?

     构造函数是初始化类对象的数据成员

2.分类

(1)默认构造函数、含参构造函数、复制构造函数(拷贝函数)、转换构造函数

3.形式

class  类名

{

public:

类名();

类名 ( 数据类型   参数,数据类型  参数 .....);#含参构造函数

~类名();

private:

数据类型  参数1;

数据类型   参数2;

}

4.典例

构造相应的学生类,并含有学号,成绩,姓名,并且学生对象不少于三个

代码如下:

#include<iostream>

#include<string>

class Student

{

public:

Student() = defualt;#默认构造函数

Student(string Name,int Num,float  Score)#含参构造函数

{

name = Name;

num = Num;

score = Score;

cout << " 调用了含参构造函数" <<endl;

}

~Student();#析构函数  其与构造函数必须成对出现

void Display()

{

cout <<"学生姓名为:"<< name <<"学号为:"<< num <<"成绩为:" << score <<endl;

}

private:

   string name;

   int  num;

   float score;

};

int  main()

{

Student stu1 = ("老王",1,100),stu2 = ("老黄",2,98),stu3 = ("老刘",3,96);

stu1.Display();

stu2.Display();

stu3.Display();

return 0;

}

注 : 当函数内有没有赋值的类对象时,系统会默认调用默认构造函数,当对相应构造函数赋予相应数值时,编译系统会调用含参构造函数.

二、析构函数

1.析构函数有什么用?

     析构函数就是将对象创建时的空间(在构造函数使用时)销毁.

2.形式

    ~ 类名() ;

3.注意

      (1) 析构函数是由编译系统自己调用,无需人工调用

      (2)析构函数没有函数参数、返回值.

三、两者的次序

1.实验代码

#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
    Student();
    Student(string Name,int Id);
    void Display();
    ~Student()
    {
        cout << "调用了" << "学号为:     "<< id<<"    " <<"析构函数" << endl;
    }

private:
    string name;
    int id;
};
Student :: Student()
{
    cout << "在该处调用了默认构造函数" <<endl;
}
Student :: Student(string Name ,int Id)
{
    name = Name;
    id = Id;
    cout  << "调用了"<<"学号为:   "  << id << "   " <<"含参构造函数" << endl;
}
void Student :: Display()
{
    cout <<"这个学生的姓名为:"<<"   " << id <<  "    " << "学号为:" << id << endl;
}
int main()
{
    Student stu1("老王",12),stu2("老李",13);
    return 0;
}

2.结果:

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小捣蛋.

建议你还是留着你的小钱吧!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值