深入了解C++构造函数

开课吧小一2021-07-30 14:10

    想要成为一名合格的C++开发工程师,一方面需要了解清楚C++开发工程师的就业前景与发展趋势,同时最重要的还是了解清楚C++开发技术,当然这也包括C++构造函数。

深入了解C++构造函数

    1、什么是构造函数?

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

#include <stdio.h>

class Test:
{
   public:
        Test()
        {
          printf("Test()\n");
        }
}

    2、构造函数调用:

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

#include <stdio.h>

class Test
{
public:
    Test()
    {
        printf("Test()\n");
    }
    
};

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()\n");
        
        m_value = 0;
    }
    Test(int v)
    {
        printf("Test(int v), v = %d\n", 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\n", i , ta[i].getValue());
    }
    
    Test t = Test(100);
    
    printf("t.getValue() = %d\n", 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

    以上就是开课吧广场小编为大家整理的“深入了解C++构造函数”一文,更多相关信息尽在开课吧广场C/C++教程 频道。

相关推荐

2021大厂高频面试题精选,0元免费领

福利来袭,C++经典项目实战免费领取!

职场进阶必备,数据分析职业能力特训营

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
算法刷题核心能力提升营