2021-01-06

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;

};

运行结果:
2021-01-06
可以看到,不论是this->fun()、this->val、还是类内直接调用都成功了。而且经过age=18这句之后,Brz的age变量确实改变了。所以这里的age与this->age重名就是一回事了。这应该与C++类的变量与函数命名空间有关。
写下以作记录。

上一篇:该是时候捋一捋Java的深浅拷贝了


下一篇:重写于重载的区别