`

空指针调用成员函数

 
阅读更多
#include <iostream> 
using namespace std; 
class test 
{ 
public: 
	test(int i){ m_i=i;} 
	test(){} 
	void hello() 
	{ 
		if(NULL == this)
		{
			cout << "null == this" << endl;
		}

		printf("hello\n"); 		
	} 
private: 
	int m_i; 
}; 
int main() 
{ 
	test *p=new test(); 
	p->hello(); 
	delete p;
	p=NULL;	

	p->hello(); 
} 

 运行结果:

 

hello

null == this

hello

 

分享到:
评论

相关推荐

    C++类的空指针调用成员函数的代码

    "C++类的空指针调用成员函数的代码" 本文主要介绍了C++类的空指针调用成员函数的知识点,包括类的空指针调用成员函数的原理、实例化和成员函数的调用过程、汇编代码的分析等。 一、类的实例调用成员函数的原理 在...

    c++空对象指针也可调用成员函数.rar

    在传统情况下,尝试通过空指针调用成员函数会导致程序崩溃,因为没有实际的对象来执行这些操作。然而,C++引入了虚函数机制,允许我们安全地处理这种情况。 虚函数的主要作用在于实现多态性,即同一类型的指针可以...

    空指针访问成员函数.zip

    当尝试通过空指针调用成员函数时,意味着我们试图在一个不存在的对象实例上执行操作,这将导致未定义的行为,通常表现为程序崩溃。 例如,假设我们有以下代码: ```cpp class MyClass { public: void myFunction...

    作业--类的空指针操作成员函数1

    标题和描述中的问题主要关注在空指针上调用成员函数的情况。首先,我们来看一下程序的主要部分: ```cpp Counter* m = NULL; m-&gt;increment(); m-&gt;Getnum(); m-&gt;Readnum(); m-&gt;show(); ``` 在这个代码片段中,指针`...

    15.3 调试空指针导致的死机问题.rar

    4. **代码审查**:仔细检查可能涉及空指针的函数调用和循环,确保没有逻辑错误。例如,当指针在函数间传递时,检查接收方是否正确处理了接收到的指针。 5. **异常处理**:考虑在可能出现空指针引用的地方添加异常...

    C++入门教程视频-7

    讲解了空指针(nullptr)的概念,以及当试图通过空指针调用成员函数时可能出现的问题和解决策略,强调了安全编程的重要性。 9. **19 类和对象-封装-c++中class和struct的区别.avi** 在C++中,class和struct的...

    易语言简单类函数指针源码

    在易语言中,类的定义通常包含属性(成员变量)和方法(成员函数)。类的实例化过程就是创建一个具体的对象,对象则拥有类定义的属性和可以执行类定义的方法。例如: ```易语言 .类.定义 类名 .属性 属性名, 数据...

    类对象和类指针

    类指针调用成员函数时,需要使用作用域解析运算符 `-&gt;`。例如: ```cpp class A { public: void func() { /*...*/ } }; class B { public: void callFunc(A* ptr) { if (ptr != nullptr) { ptr-&gt;func(); // ...

    二叉树类的定义和成员函数的实现

    本文将详细介绍二叉树类的定义以及其主要成员函数的实现。 首先,我们看到定义了一个名为`Balance_factor`的枚举类型,它表示节点的平衡因子,用于判断树是否平衡。`left_higher`表示左子树比右子树高,`equal_...

    空指针

    1. **空指针异常(NullPointerException)**:这是Java中一种标准的运行时异常,当试图通过null引用调用方法或访问字段时抛出。处理空指针异常的关键在于确保在使用对象之前检查其是否为null。 2. **...

    C++、C_、C面试真题超经典

    - **虚函数与NULL指针**:即使成员函数被声明为虚函数,通过NULL指针调用仍然可能导致未定义行为。这是因为虚函数调用需要通过`this`指针访问虚函数表。 - **虚函数调用机制**:虚函数通过对象内的虚函数表指针进行...

    spring static静态方法里面注入bean空指针解决

    然而,静态方法和静态变量不参与Spring的生命周期管理,因此,尝试在静态字段或静态方法中直接使用`@Autowired`注入Bean会导致空指针异常,因为Spring容器不会初始化静态成员。 **解决方法1:使用@Component和非...

    VC中CString的成员函数.pdf

    VC中CString的成员函数主要涵盖了MFC库中用于处理字符串的基本操作,这些成员函数可以实现字符串的创建、赋值、比较、删除、格式化、搜索等操作。接下来,我们将详细解读这些成员函数的具体用途和用法。 首先,...

    mfc常用类及其成员函数

    ### MFC常用类及其成员函数详解 #### 一、CRuntimeClass 结构 **CRuntimeClass** 是MFC中用于支持运行时类型信息的一个关键结构。它的主要作用是在运行时提供对象及其基类的信息。 - **成员变量**: - **lpName*...

    详解C++中的this指针

    `this`指针是一个隐含的参数,它指向调用成员函数的对象实例。在深入探讨`this`指针之前,我们先来看一下给出的类`CNullPointCall`及其成员函数。 ```cpp class CNullPointCall{ public: static void Test1(); ...

    对话框之间的相互调用

    4. **调用主对话框方法**:在子对话框的消息处理函数或成员函数中,可以直接调用主对话框的方法,执行相应的操作,如更新控件状态、修改数据等。 5. **通信机制**:除了直接调用,还可以使用其他通信机制,如消息...

    C++面试题(很经典)

    题目(三):对NULL指针调用成员函数? 调用pA-&gt;Print1()不会出错,因为Print1()的函数地址是固定的,编译器会传递一个this指针,即使这个指针是NULL。但是,Print2()需要访问m_value,这就需要非NULL的this指针,...

    C++引用和指针的区别,C++虚函数原理,C++面试经验

    虚函数是在类中被声明为 virtual 的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它...

    STM32实现跨bin文件调用函数(Firmware)

    这样,App就可以通过结构体成员调用Driver中的函数,实现跨bin文件的调用。 需要注意的是,这种方法需要确保App和Driver之间的接口稳定,以及在更新Driver时不会影响到App的运行。此外,还需要处理好函数的参数类型...

Global site tag (gtag.js) - Google Analytics