类和对象 第三部分第二小节:空指针访问成员函数

C++中空指针也可以调用成员函数的,但是也要注意有没有用到this指针,如果有用到this指针,需要加以保证代码的健壮性

代码案例

类和对象 第三部分第二小节:空指针访问成员函数_第1张图片

出现报错

类和对象 第三部分第二小节:空指针访问成员函数_第2张图片

报错原因:因为新建的指针是空,所以this指代的对象为空,因此没有成员变量,所以报错

但是换直接用函数就正常

类和对象 第三部分第二小节:空指针访问成员函数_第3张图片

类和对象 第三部分第二小节:空指针访问成员函数_第4张图片

解决方案:

//空指针访问成员函数
class Person {
public:

	void ShowClassName() {
		cout << "我是Person类!" << endl;
	}

	void ShowPerson() {//加入判断语句,如果是空就直接返回
		if (this == NULL) {
			return;
		}
		cout << mAge << endl;
	}

public:
	int mAge;
};

void test01()
{
	Person * p = NULL;
	p->ShowClassName(); //空指针,可以调用成员函数
	p->ShowPerson();  //但是如果成员函数中用到了this指针,就不可以了
}

int main() {

	test01();

	system("pause");

	return 0;
}

在其中使用if判断语句,先前判断this指针是否为空,如果是空,则直接返回,不进行下面的内容,可以避免执行下面的语句,出现报错

你可能感兴趣的:(#,C++核心编程,c++,算法,开发语言)