C++中声明和实现构造函数
构造函数是一种特殊的函数(方法),在根据类创建对象时被调用。与函数一样,构造函数也可以重载。
构造函数是一种特殊的函数,它与类同名且不返回任何值。因此, Human 类的构造函数的声明类似于下面这样:
class Human
{
public:
Human(); // declaration of a constructor
};
这个构造函数可在类声明中实现,也可在类声明外实现。在类声明中实现(定义)构造函数的代码类似于下面这样:
class Human
{
public:
Human()
{
// constructor code here
}
};
在类声明外定义构造函数的代码类似于下面这样:
class Human
{
public:
Human(); // constructor declaration
};
// constructor implementation (definition)
Human::Human()
{
// constructor code here
}
类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。
构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。
下面的实例有助于更好地理解构造函数的概念:
#include <iostream>
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); // 这是构造函数
private:
double length;
};
// 成员函数定义,包括构造函数
Line::Line(void)
{
cout << "Object is being created" << endl;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
// 程序的主函数
int main( )
{
Line line;
// 设置长度
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <<endl;
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
Object is being created
Length of line : 6
注意:
::被称为作用域解析运算符。例如, Human::dateOfBirth 指的是在 Human 类中声明的变量 dateOfBirth,而::dateOfBirth 表示全局作用域中的变量 dateOfBirth。
该文章会更新,欢迎大家批评指正。
推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程