C++ const成员变量

C++ const成员变量教程

C 语言C++ 中,const 用来修饰的常量表示是不可以被修改的,同时,const 在 C++ 中,还可以用来修饰 成员变量,当我们使用 const 修饰成员变量时,那么该成员变量只可以使用初始化列表的方式来进行初始化。

C++ const成员变量详解

定义

用 const 修饰成员变量,表示该成员变量不可以被修改,同时,使用 const 修饰的成员变量,只能使用初始化列表进行初始化。

语法

Contractor(type1 var1): m_var1(var1) { private: const type1 m_var1; }

说明

我们使用初始化列表的方式,用形参 var1 初始化了 const 成员变量 m_var1。

案例

初始化const成员变量

使用初始化列表初始化 const 成员变量

#include <iostream> using namespace std; class Student { public: Student(string name, int age) { m_name = name; m_age = age; } void sayHello() { cout << "I am " << m_name << " and i am " << m_age << " years old!" << endl; } private: const string m_name; int m_age; }; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; Student stu("HaiCoder", 109); stu.sayHello(); Student stu1("Jobs", 57); stu1.sayHello(); return 0; }

程序运行后,控制台输出如下:

25_C初始化const成员变量.png

我们定义了一个 const 成员变量 m_name,接着,我们在 构造函数 里面,通过赋值的方式,来给 const 成员变量设置值,程序报错,因为,const 成员变量不可以使用赋值的方式来设置值。

只能使用初始化列表的方式,来进行初始化,现在,我们修改程序如下:

#include <iostream> using namespace std; class Student { public: Student(string name, int age):m_name(name), m_age(age) { } void sayHello() { cout << "I am " << m_name << " and i am " << m_age << " years old!" << endl; } private: const string m_name; int m_age; }; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; Student stu("HaiCoder", 110); stu.sayHello(); Student stu1("JackMa", 61); stu1.sayHello(); return 0; }

程序运行后,控制台输出如下:

26_C初始化const成员变量.png

这次,我们在构造函数上面,使用了初始化列表的方式,初始化了 const 成员变量,这次程序没有报错,因此,const 成员变量只可以使用初始化列表的方式进行初始化。

C++ const成员变量总结

const 在 C++ 中,还可以用来修饰成员变量,当我们使用 const 修饰成员变量时,那么该成员变量只可以使用初始化列表的方式来进行初始化。