CPP学习之——成员变量的初始化(10.4)

一 概述

对成员变量进行初始化有好多方式:

  • 一个是在构造函数体中进行初始化,精确地说是对成员变量的赋值
  • 另外还有一种方式就是在构造函数的函数头进行初始化

二 初始化方式

2.1 示例

1
rectangle():length(3),width(4),height(5){}

2.2 说明

  • 在构造函数的右边有个冒号(:),然后是成员变量的名称和一对小括号(),小括号中是要初始化的值或者表达式,如果对多个成员进行初始化,那么要用逗号将它们隔开,最后是一对大括号{},大括号中就是函数所要执行的功能

三 const修饰引起的错误

3.1 代码

1
2
3
4
5
6
7
8
9
10
class rectangle
{
private:
const int length;
int width;
int height;
public:
rectangle(){length=3,width-4;}
//rectangle():length(3),width(5){cout<<"长方形b的面积是:" <<length*width<<endl;}
};

3.2 错误现象

1
note: 'const int rectangle::length' should be initialized const int length;

3.3 说明

由于常量和引用只能被初始化,不能被赋值。因此最好在构造函数的函数头中对常量和引用进行初始化

四 示例代码及结果

4.1 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
class rectangle
{
private:
int length;
int width;
int height;
public:
// rectangle() {length = 3; width - 4;}
rectangle():length(3),width(5){cout<<"长方形b的面积是:"<<length*width<<endl;}

};
int main()
{
rectangle a;
return 0;
}

4.2 输出结果

1
长方形b的面积是:15