C++复习:类内变量与函数调用
python调用类内函数与变量需要显式写出self.fun();self.val;,C++也可以通过this->fun();this->val来调用,也可以直接调用;下面是调试代码与程序:
#include"iostream"
#include"string"
using namespace std;
class Father{
public:
int age;
string name;
int GetAge();
string GetName();
void SayHello();
};
int Father::GetAge()
{
return this->age;
};
string Father::GetName()
{
return name;
}
void Father::SayHello()
{
age=18;
cout<<"Hello ! "<<"I am "<<this->name<<endl;
cout<<"Hello ! "<<"I am "<<this->GetName()<<endl;
cout<<"Hello ! "<<"I am "<<GetName()<<endl;
cout<<"Hello ! "<<"I am "<<name<<endl;
cout<<"my age "<<GetAge()<<endl;
// int id = GetID();
// cout<<"my id is "<< id;
// int idd = this->GetID();
};
int main()
{
Father Brz;
Brz.name="brz";
Brz.age=25;
Brz.ID=47002;
cout<<Brz.age<<endl;
Brz.SayHello();
cout<<Brz.age<<endl;
system("pause");
return 0;
};
运行结果:
可以看到,不论是this->fun()、this->val、还是类内直接调用都成功了。而且经过age=18这句之后,Brz的age变量确实改变了。所以这里的age与this->age重名就是一回事了。这应该与C++类的变量与函数命名空间有关。
写下以作记录。