#include<iostream>
#include<string>
using namespace std;

class Person {
public:
    int age;

    void showPerson() {
        cout << "这是一个Person类" << endl;

    }

    void showAge() {

        if (this == NULL)
        {
            cout << "age==NULL" << endl;
            return;
        }
        cout << age << endl; //第32行代码访问会错误,因为age其实默认IDE是给你加了this.的
        //实际这里访问的是 this.age,可是由于32行是用空指针访问的,而this代表的是调用这个属性的对象,但是这个对象又是你创建的空指针,所以报错
        //所以需要加上一个if判断,之后就不会错误了
    }

};
int main() {
    Person* p = NULL;  //创建一个空指针
    p->showPerson();  //正常访问
    p->showAge(); //不可以访问,错误原因是因为创建的*p是一个空指针

}

发表回复

后才能评论