初始化列表中const变量的“ this”关键字

时间:2019-03-13 12:51:28

标签: c++

为什么我们不能像这样在初始化列表中使用this? 它在{之前引发了找不到this的错误。 但是范围不是问题,因为第二个代码有效

class Student {
public :
    int age;
    const int rollNumber;
    int &x;     // age reference variable

    Student(int r, int age) : rollNumber(r), this->age(age), x(this -> age) {
        //rollNumber = r;
    }

“此”作品有效:

class Student {
public :
    int age;
    const int rollNumber;int &x;


    Student(int r, int age) : rollNumber(r), x(this -> age) {
        //rollNumber = r;
    }

我知道我们必须同时声明和初始化const和引用变量,但是我想在接受输入并传递给对象后对其进行初始化

1 个答案:

答案 0 :(得分:5)

简短的回答是“这就是语法的决定方式”,但是从哲学的角度来看,您可能会说this->age在初始化列表中不存在(因为您没有构造{{ 1}} ...)。只是:

this

是正确的语法,从上下文中可以清楚地知道age(age) 是这里的哪个。