#include<iostream>
#include<fstream>
using namespace std;
class Integer {
public:
int val;
Integer(int val = 0) {
this->val = val;
}
void setVal(int val) {
this->val = val;
}
};
int main()
{
int val;
Integer i;
i.setVal(8);
cout << val << endl;
}
Run Code Online (Sandbox Code Playgroud)
当我执行我的代码时,我得到了0.我是C++的新手,我不明白this.有人可以详细说明这个问题吗?
你输错了val.如上所述,您可以调用,i.val因为您将数据成员val 公开,但您也可以选择为Integer类创建函数("getter").无论如何,我建议学习私有数据成员以及如何使用它们.
getter方法看起来像
// in the class
int getVal() {
return val; // equal to return this->val
}
// in main()
cout << i.getVal() << endl;
Run Code Online (Sandbox Code Playgroud)
请注意,如果你改变你不使用你以前的主要功能val中main()了.这也是重点 - 您现在正在使用类数据成员!
有关如何解决使用此指针的需求的讨论,请查看以下问题:使用下划线后缀对成员有益吗?
此时似乎您不需要包含fstream.