c++类的构造函数

Posted zzzzxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++类的构造函数相关的知识,希望对你有一定的参考价值。

类的构造函数

类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。

构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。

构造函数可用于为某些成员变量设置初始值。

下面为实例:

 1 #include<iostream>
 2 using namespace std;
 3 class Line
 4 
 5 public:
 6     void setLength(double len);
 7     double getLength(void);
 8     Line();//为构造函数
 9 
10 private:
11     double length;
12 ;
13 
14 //成员函数定义,包括构造函数
15 Line::Line(void)
16 
17     cout << "Object is being created" << endl;
18 
19 void Line::setLength(double len)
20 
21     length = len;
22 
23 double Line::getLength(void)
24 
25     return length;
26 
27 
28 //程序主函数
29 int main()
30 
31     Line line;
32     //设置长度
33     line.setLength(6.0);
34     cout << "Length of line:" << line.getLength() << endl;
35     system("pause");
36     return 0;
37     
38 

上述代码运行结果:

技术图片

带参数的构造函数

默认的构造函数没有任何参数,但如果需要,构造函数也可以带有参数。这样在创建对象时就会给对象赋初始值,如下面的例子所示:

 1 #include <iostream>
 2  
 3 using namespace std;
 4  
 5 class Line
 6 
 7    public:
 8       void setLength( double len );
 9       double getLength( void );
10       Line(double len);  // 这是构造函数
11  
12    private:
13       double length;
14 ;
15  
16 // 成员函数定义,包括构造函数
17 Line::Line( double len)
18 
19     cout << "Object is being created, length = " << len << endl;
20     length = len;
21 
22  
23 void Line::setLength( double len )
24 
25     length = len;
26 
27  
28 double Line::getLength( void )
29 
30     return length;
31 
32 // 程序的主函数
33 int main( )
34 
35    Line line(10.0);
36  
37    // 获取默认设置的长度
38    cout << "Length of line : " << line.getLength() <<endl;
39    // 再次设置长度
40    line.setLength(6.0); 
41    cout << "Length of line : " << line.getLength() <<endl;
42  
43    return 0;
44 

上述代码运行结果如下所示:

技术图片

 

 

 

使用初始化列表来初始化字段

使用初始化列表来初始化字段:

Line::Line( double len): length(len)

    cout << "Object is being created, length = " << len << endl;

也可写为:

Line::Line( double len)

    cout << "Object is being created, length = " << len << endl;
    length = len;

假设有一个类 C,具有多个字段 X、Y、Z 等需要进行初始化,同理地,您可以使用上面的语法,只需要在不同的字段使用逗号进行分隔,如下所示:

C::C( double a, double b, double c): X(a), Y(b), Z(c)

  ....

 

以上是关于c++类的构造函数的主要内容,如果未能解决你的问题,请参考以下文章

c++类的构造函数

c++关于派生类的拷贝构造函数

C++:对象和类|| 类的构造函数与析构函数

C++:对象和类|| 类的构造函数与析构函数

C++类的构造函数不能为虚函数的原因

C++调用父类的构造函数规则