C++类的成员初始化

C++类的成员初始化

学到一个类的成员初始化,目前已知的用途是给类内部的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类型的赋值,可以选用于一般的变量赋值。

posted @ 2020-02-11 22:03  scyq  阅读(1254)  评论(0)    收藏  举报