c++ - 为什么我需要在转换构造函数上引用 this->?
问题描述
我还在学习 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.
}
main
方法:
Integer a(50);
a = 100;
int b = (int)a;
cout << b << endl;
所以我的问题是,为什么我需要使用this->
方法operator int()
?我没有传递任何冲突的参数,所以它不应该是编译器的问题。我也没有对其进行过测试,并且效果很好。但是在我的教科书中,我明确指出我应该添加this->num
.
有任何想法吗?
解决方案
在您在这里展示的特定示例中,您实际上不需要使用this->
前缀。只有少数情况需要在数据成员前面加上this->
,例如
- 如果要引用与成员函数的局部变量或参数同名的数据成员,或者
- 如果您同时使用模板和继承,并且需要在基类中查找某些内容。
由于您的示例不属于这些情况,正如您在自己的探索中指出的那样,this->
前缀是完全可选的。
推荐阅读
- python - 无法执行脚本 pygame 错误 dist 不起作用
- node.js - 使用客户端进行嵌套查询
- gitlab-ci - 为什么我关心哪个 gitlab runner 运行我的管道
- reactjs - ReactApp 中缺少 serviceWorker
- javascript - 关于 jQuery hover()、setInterval 范围和“this”问题的问题 ---
- reactjs - 将根目录重定向到 /path/ 用于单页应用程序和 NGINX
- google-apps-script - 将另一行内容添加到 .txt
- database - 如何使用 bs4 从脚本中提取标题
- android - 如何在单词上添加突出显示?
- python - Python:如何使用 Plotly 堆叠或覆盖直方图