我仍在学习 C++ 中的 OOP 基础知识,在使用转换构造函数创建运算符方法时出现了一个问题。
这是我的代码:
头文件:
class Integer {
private:
int num;
public:
Integer();
Integer(int);//Convert constructor
~Integer();
operator int();
int getNum();
};
源文件:
Integer::operator int() {
return this->num; //No idea why I need to specify this-> here.
}
主要
方法:
Integer a(50);
a = 100;
int b = (int)a;
cout << b << endl;
所以我的问题是,为什么我需要在 operator int()
方法上使用 this->
?我没有传递任何冲突的参数,所以这对编译器来说应该不是问题。我也没有测试它,它工作正常。但是在我遵循的教科书中明确指出我应该添加 this->num
。
有什么想法吗?
最佳答案
在此处显示的特定示例中,您实际上不需要使用 this->
前缀。只有少数情况需要在数据成员前加上this->
前缀,比如
- 如果要将与局部变量或参数同名的数据成员引用到成员函数,或者
- 如果您同时使用模板和继承并且需要在基类中查找某些内容。
由于您的示例不属于这些情况,正如您在自己的探索中指出的那样,this->
前缀完全是可选的。
关于c++ - 为什么我需要在转换构造函数上引用 this->?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52584595/