c++中构造函数学习的总结(一)

描述

大家晚上好,今天给大家分享的是c++中的构造函数,这段时间可能分享c++、Uboot、linux内核的文章会比较多一点,自己的拖延症太强了,得改掉这个坏习惯来。每天进步一点点,日积月累你也是专家。

一、构造函数:

1、什么是构造函数?

关于这个构造函数,简单理解就是在一个类中,有一个函数,它的函数名称和类名同名,而且这个构造函数没有返回值类型的说法(  Test()这个函数就是构造函数了。):

#include <stdio.h>

class Test:

public:

Test()

printf("Test()");

2、构造函数调用:

(1)一般情况下,构造函数在定义时自动被调用(主要作用就是自动去初始化类中的属性,这个属性通俗一点来说,就是我们所说的变量。而且这里的自动的意思,就是说当你创建了一个对象后,它就会自动调用构造函数,不用你再去main函数里面写构造函数了。):

#include <stdio.h>

class Test

public:

Test()

printf("Test()");

};

int main()

Test t;      // 调用 Test()

return 0;

演示结果如下:

root@txp-virtual-machine:/home/txp/c++# ./a.out

Test()

(2)一些特殊情况下,需要手工来调用构造函数(这个在下面带参数的构造函数里面会有一个案例分析)

二、带参数的构造函数:

(1)构造函数可以根据需要定义参数。

class Test

public:

Test(int v)

};

(2)一个类中可以存在多个重载的构造函数(什么重载函数,简单来说,可以同函数名,但是它的传参类型或者返回类型不同就是重载函数了。)下面来看一个具体带参构造函数案例:

#include <stdio.h>

class Test

private:

int m_value;

public:

Test()

printf("Test()");

m_value = 0;

Test(int v)

printf("Test(int v), v = %d", v);

m_value = v;

int getValue()

return m_value;

};

int main()

Test ta[3] = {Test(), Test(1), Test(2)};

for(int i=0; i<3; i++)

printf("ta[%d].getValue() = %d", i , ta[i].getValue());

Test t = Test(100);

printf("t.getValue() = %d", t.getValue());

return 0;

演示结果如下:

root@txp-virtual-machine:/home/txp/c++# ./a.out

Test()

Test(int v), v = 1

Test(int v), v = 2

ta[0].getValue() = 0

ta[1].getValue() = 1

ta[2].getValue() = 2

Test(int v), v = 100

t.getValue() = 100

三、实战案例:

需求:开发一个数组类解决原生数组的安全性问题:

——提供函数获取数组长度

——提供函数获取数组元素

——提供函数设置数组元素

审核编辑:符乾江
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分