C++中的构造函数(Constructor)

C++中有这么一种特殊的函数,它在类里,与类名同名,且没有返回值的一个函数,只要我们定义一个类的对象,系统就会自动调用它,进行专门的初始化对象用,而大多数情况下,因为我们没有定义构造函数,系统会默认生成一个默认形式、隐藏着的构造函数,这个构造函数的函数体是空着的,因此不具有任何功能。

那么下来,我们将教大家如何定义自己的构造函数,需要用户自行定义了至少一个构造函数,系统就不在自动生成,而是根据用户定义的构造函数选择最匹配的一个进行调用。

例如还是Student类的例子,我们添加一个带有默认参数的构造函数,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

#include<iostream>

#include<Cstring>

using namespace std;

class Student

{

    private:

    int num;//学号

    char name[100];//名字

    int score;//成绩

    public:

    Student(int n,char *str,int s);

    int print();

    int Set(int n,char *str,int s);

};

Student::Student(int n,char *str,int s)

{

     num = n;

     strcpy(name,str);

     score = s;

cout<<"Constructor"<<endl;

}

int Student::print()银行从业考试大纲

{

    cout<<num<<" "<<name<<" "<<score;

    return 0;

}

int Student::Set(int n,char *str,int s)

{

     num = n;

     strcpy(name,str);

     score = s;

}

int main()

{

    Student A(100,"dotcpp",11);

    A.print();

    return 0;

}

即可以在定义的同时调用构造函数,实现初始化的作用,运行如下图 

cs.png

需要注意的时,由于我们已经在类中定义了一个带默认参数的构造函数,则系统不会再自动生成,这个时候我们定义对象的时候也需要传入三个默认初始值,因为构造函数可以重载,系统会找最匹配的一个函数,但如果定义时不是带默认参数的构造函数,则会报错,请大家自行上机实验!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值