问题描述
#include <iostream>
using namespace std;
class T1
{
const int t = 100;
public:
T1()
{
cout << "T1 constructor: " << t << endl;
}
};
当我尝试初始化const成员变量 t $ c时$ c>与100。但这给了我以下错误:
When I am trying to initialize the const member variable t
with 100. But it's giving me the following error:
test.cpp:21: error: ISO C++ forbids initialization of member ‘t’
test.cpp:21: error: making ‘t’ static
如何初始化 const
值?
推荐答案
const
变量指定变量是否可修改。每次引用变量时将使用分配的常数值。
The const
variable specifies whether a variable is modifiable or not. The constant value assigned will be used each time the variable is referenced. The value assigned cannot be modified during program execution.
Bjarne Stroustrup的简要地总结一下:
Bjarne Stroustrup's explanation sums it up briefly:
A const
变量必须在类中声明,但不能在其中定义。我们需要在类外定义const变量。
A const
variable has to be declared within the class, but it cannot be defined in it. We need to define the const variable outside the class.
T1() : t( 100 ){}
这里的赋值 t = 100
发生在初始化列表中类初始化发生。
Here the assignment t = 100
happens in initializer list, much before the class initilization occurs.
这篇关于如何在类中初始化const成员变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!