想要成为一名合格的C++开发工程师,一方面需要了解清楚C++开发工程师的就业前景与发展趋势,同时最重要的还是了解清楚C++开发技术,当然这也包括C++构造函数。
1、什么是构造函数?
关于这个构造函数,简单理解就是在一个类中,有一个函数,它的函数名称和类名同名,而且这个构造函数没有返回值类型的说法(Test()这个函数就是构造函数了。):
#include
classTest:
{
public:
Test()
{
printf("Test()\n");
}
}
2、构造函数调用:
(1)一般情况下,构造函数在定义时自动被调用(主要作用就是自动去初始化类中的属性,这个属性通俗一点来说,就是我们所说的变量。而且这里的自动的意思,就是说当你创建了一个对象后,它就会自动调用构造函数,不用你再去main函数里面写构造函数了。):
#include
classTest
{
public:
Test()
{
printf("Test()\n");
}
};
intmain()
{
Testt;//调用Test()
return0;
}
演示结果如下:
root@txp-virtual-machine:/home/txp/c++#./a.out
Test()
(2)一些特殊情况下,需要手工来调用构造函数(这个在下面带参数的构造函数里面会有一个案例分析)
带参数的构造函数:
(1)构造函数可以根据需要定义参数。
classTest
{
public:
Test(intv)
{
}
};
(2)一个类中可以存在多个重载的构造函数(什么重载函数,简单来说,可以同函数名,但是它的传参类型或者返回类型不同就是重载函数了。)下面来看一个具体带参构造函数案例:
#include
classTest
{
private:
intm_value;
public:
Test()
{
printf("Test()\n");
m_value=0;
}
Test(intv)
{
printf("Test(intv),v=%d\n",v);
m_value=v;
}
intgetValue()
{
returnm_value;
}
};
intmain()
{
Testta[3]={Test(),Test(1),Test(2)};
for(inti=0;i<3;i++)
{
printf("ta[%d].getValue()=%d\n",i,ta[i].getValue());
}
Testt=Test(100);
printf("t.getValue()=%d\n",t.getValue());
return0;
}
演示结果如下:
root@txp-virtual-machine:/home/txp/c++#./a.out
Test()
Test(intv),v=1
Test(intv),v=2
ta[0].getValue()=0
ta[1].getValue()=1
ta[2].getValue()=2
Test(intv),v=100
t.getValue()=100
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.