学到一个类的成员初始化,目前已知的用途是给类内部的const类型变量进行赋值。
首先,如果像这么干,编译器会报错。
class MyClass{
public:
Myclass(int a, int b){
regVar = a;
constVar = b;
}
private:
int regVar;
const int constVar;
};
这样做会报错的原因是,构造器内部的代码只有在类被实例化时才会运行。所以我先定义了一个const类型的整型数,这个数字原则上是不可以改变的,这是不可以被改变的,所以报错了。
那么,要怎么办呢?在C++中,我们利用构造器进行成员初始化。(这里我不知道怎么说了,英文是Member Initialization List),这个列表由一个冒号连接。用variable(value)的形式进行赋值。说起来好抽象,看代码。
class MyClass{
public:
Myclass(int a, int b): regVar(a), constVar(b){
// code here
}
private:
int regVar;
const int constVar;
};
这样看起来很高级,初始化必须用于const类型的赋值,可以选用于一般的变量赋值。
原文:https://www.cnblogs.com/scyq/p/12297022.html