为什么我们不能像这样在初始化列表中使用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
和引用变量,但是我想在接受输入并传递给对象后对其进行初始化
答案 0 :(得分:5)
简短的回答是“这就是语法的决定方式”,但是从哲学的角度来看,您可能会说this->age
在初始化列表中不存在(因为您没有构造{{ 1}} ...)。只是:
this
是正确的语法,从上下文中可以清楚地知道age(age)
是这里的哪个。