空类指针调用成员函数 类内的this指针
来源:互联网 发布:安迪大师飞越黄河知乎 编辑:程序博客网 时间:2024/06/04 19:01
运行下面中的代码,得到的结果是什么?
class A
{
private:
int m_value;
public:
A(int value)
{
m_value = value;
}
void Print1()
{
printf("hello world");
}
void Print2()
{
printf("%d", m_value);
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A* pA = NULL;
pA->Print1();
pA->Print2();
return 0;
}
分析:
答案是Print1调用正常,打印出hello world,但运行至Print2时,程序崩溃。
调用Print1时,并不需要pA的地址,因为Print1的函数地址是固定的。编译器会给Print1传入一个this指针,该指针为NULL,但在Print1中该this指针并没有用到。只要程序运行时没有访问不该访问的内存就不会出错,因此运行正常。
在运行print2时,需要this指针才能得到m_value的值。由于此时this指针为NULL,因此程序崩溃了。
- 空类指针调用成员函数 类内的this指针
- 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?
- 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?
- 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?
- 空的类指针照样调用成员函数
- c++的this指针与空指针类成员函数访问
- 详解this指针--为什么空的对象指针可以调用成员函数
- 空指针的成员函数调用
- 空指针的成员函数调用
- 空指针调用成员函数
- 空指针调用成员函数
- c++ 类成员函数内删除this指针
- 函数指针调用类的成员函数
- 函数指针调用类的成员函数
- 关于空指针调用类成员能否通过的问题
- 一般函数指针和类的成员函数指针 (this指针)
- 为什么通过空指针(NULL)可以正确调用一些类的成员函数?
- 为什么通过空指针(NULL)可以正确调用一些类的成员函数?
- 环形队列FIFO实现方法
- unity3d与sqlite连接 System.Collections.ArrayList
- android实现仿照QQ好友列表滑动效果
- 安泰2013博士申请制复试之应用经济学
- 鉴客 Android 的权限设置大全
- 空类指针调用成员函数 类内的this指针
- Exception starting filter struts2 Unable to load configuration. - [unknown location] .
- 银行系统整理
- linux和Qt下获取本机每个接口的ip地址
- 正则表达式高级技巧及实例详解
- Java Annotation入门
- 大端法(小端法)的测试代码
- Cav
- java操作Oracle数据库——ARRAY、TABLE类型批量入库