为什么我需要在转换构造函数上引用this->?

Bru*_*tti 3 c++ oop class this

我仍然在学习C++中的OOP基础知识,并且在使用转换构造函数创建运算符方法时出现了一个问题.

这是我的代码:

头文件:

class Integer {
private:
    int num;
public:
    Integer();
    Integer(int);//Convert constructor
    ~Integer();
    operator int();
    int getNum();
};
Run Code Online (Sandbox Code Playgroud)

源文件:

Integer::operator int() {
   return this->num; //No idea why I need to specify this-> here.
}
Run Code Online (Sandbox Code Playgroud)

main 方法:

Integer a(50); 
a = 100;       

int b = (int)a; 
cout << b << endl;
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,为什么我需要this->operator int()方法上使用?我没有传递任何冲突的参数,所以它不应该是编译器的问题.我也没有测试它,它工作正常.但在我的教科书中,我明确地说它应该添加this->num.

有任何想法吗?

tem*_*def 5

在您在此处显示的特定示例中,您实际上不需要使用this->前缀.只有少数情况需要为数据成员添加前缀this->,例如

  • 如果要将与本地变量或参数同名的数据成员引用到成员函数,或者
  • 如果你一起使用模板和继承,需要在基类中查找一些东西.

由于您所拥有的示例不属于这些情况,正如您在自己的探索中所指出的那样,this->前缀完全是可选的.