我仍在学习C ++中OOP的基础知识,并且在使用convert构造函数创建运算符方法时出现了一个问题。
这是我的代码:
头文件:
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.
}
main
方法:
Integer a(50);
a = 100;
int b = (int)a;
cout << b << endl;
所以我的问题是,为什么我需要在this->
方法上使用operator int()
?我没有传递任何冲突的参数,因此对编译器来说应该不是问题。我也没有测试它,它工作正常。但是在我的教科书中,我正在紧跟着它说要添加this->num
。
有什么想法吗?
答案 0 :(得分:5)
在这里显示的特定示例中,实际上不需要使用this->
前缀。在少数情况下,您需要为数据成员加上this->
前缀,例如
由于您所使用的示例不属于这些情况,正如您在自己的探索中所指出的那样,this->
前缀是完全可选的。
答案 1 :(得分:0)
简短回答:
this
是指向您课程的指针。
*this
是您的课程内容。
箭头运算符:x->y
等同于(*x).y
,只是比较整洁。