我们来观察一下:

#include<iostream>
class A
{
public:A() { a = 5; }int a;void sum(){int b = 10;}
};int main()
{A *pa = NULL;pa->sum();//问题这里,奇怪了为什么指针并没有new A,也就是说没有初始化,但是还可以执行函数sum()呢? (就是说怎么还能找得到sun()函数的地址呢?)int aa = pa->a;//这个时候会出错误 找不到pa->a,这个是可以理解的。system("pause");return 0;
}

问题:

1)为什么指针并没有new A,也就是说没有初始化,但是还可以执行函数sum()呢? (就是说怎么还能找得到sun()函数的地址呢?)

这里问题很简单,因为函数在类里面是独立于类存在的,而且不占用类的空间在程序编译的时候就已经把函数的地址分配好了,因此只要有这么一个对象,不管他指向NULL还是非NULL都是可以调用函数的,也不会出错。因此pa->sum()可以运行;

 2)int aa = pa->a; // 为什么这个时候会出错误 找不到pa->a?。

    但是这里就有问题了,pa就是NULL了,没有空间了,但是a是类的一个成员,没有空间的对象会有内部的a的存在?

    “皮之不存,毛将焉附?”

20. A *p=NULL,p 可以调用 A 类里面的函数嘛?相关推荐

  1. 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?

    有下面的一个简单的类: class CNullPointCall { public:     static void Test1();     void Test2();     void Test3 ...

  2. mfc socket onreceive函数不被调用_不报错地调用空指针类的成员函数

    ​猜猜下列例子运行会有什么结果? class A {public:static void print(){printf(">>>>>n");}void ...

  3. 父类指针指向子类实例,用父类指针调用虚函数,调用的是子类的函数还是父类的函数...

    父类指针指向子类实例,用父类指针调用虚函数,调用的是子类的函数还是父类的函数 以下程序的显示结果是什么,为什么 #include <iostream> using namespace st ...

  4. 关于java重载函数,参数为null时,调用的处理。(精确性原则)

    关于以下程序的输出结果 public class TestNull { public void show(String a){ System.out.println("String" ...

  5. 在C#中,当您在null对象上调用扩展方法时会发生什么?

    本文翻译自:In C#, what happens when you call an extension method on a null object? Does the method get ca ...

  6. Qt调用dll中的功能函数

    http://www.cnblogs.com/hicjiajia/archive/2010/08/27/1810239.html 声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll ...

  7. jni调用java类_JNI之C++调用Java类 —— java.lang.String

    JNI之C++调用Java类 -- java.lang.String 为什么要用C++调用Java类?很难回答,写着文章只是觉得JNI很有意思.于是开始编写一段使用VC++在Windows系统里调用j ...

  8. Java反射机制demo(五)—获得并调用一个类中的方法

    这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和运行结果.获取所有的方法使用Class类中getMetho ...

  9. 【转】Qt调用dll中的功能函数

    DLL 优点 ------------------------------------- 1.扩展了应用程序的特性: 2.可以用许多种编程语言来编写: 3.简化了软件项目的管理: 4.有助于节省内存: ...

最新文章

  1. select,table,form
  2. 中国工业节能减排产业项目盈利模式及投资风险预警报告2021-2027年
  3. Java传xml时字符串乱码_大神们,我用DOM4j解析xml文档时,中文乱码
  4. logon oracle 密码 用户名_oracle用户名密码及用户被锁等问题
  5. 散列函数的应用及其安全性
  6. 《 Python树莓派编程》——第1章 树莓派简介 第1.1 树莓派的历史
  7. java框架之SpringCloud(2)-Rest微服务案例
  8. 【Python系列】之python2.7.6离线安装Matplotlib
  9. java 测试磁盘io,详解三种Linux测试磁盘IO性能的方法总结,值得收藏
  10. java线程知识点拾遗(CAS)
  11. The process cannot access the file '' because it is being used by another process.....
  12. 学习笔记9--汽车线控系统技术
  13. zune自搭虚拟服务器离线升级,Zune 30g 购买/使用 个人经验贴,希望可以帮到有需要的烧友~...
  14. 论文翻译:2020_Improving Perceptual Quality By Phone-Fortified Perceptual Loss For Speech Enhancement...
  15. 异常值监测的方法 Tukey test
  16. 三相全桥整流电路_三相全波整流电路原理?
  17. 风险预测模型_【期刊导读】侯金林教授团队发表全球首个跨病因和跨种族的慢性肝病患者肝癌风险预测模型——aMAP评分...
  18. Rust包管理 Crate
  19. Python 练习实例100-39,有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
  20. 深度信念网络_【文章推荐】应用于油中溶解气体分析的深度信念网络与典型神经网络对比研究...

热门文章

  1. 设计模式[20]-Builder
  2. 12种超酷HTML5 SVG和CSS3浮动标签效果
  3. python使用pyodbc,freetds连接azure数据库
  4. 2011.12.15 linux基本命令
  5. 《硝烟中的Scrum和XP》-首感
  6. OpenCV图像处理使用笔记(五)——图像边界拓展
  7. win10+ubuntu双系统下,ubuntu不能访问windows的磁盘分区
  8. 基于机器学习的捡球机器人设计与实现(探索)第4篇——机械设计)
  9. php使用redis生成自增序列号码,Redis使用Eval多个键值自增的操作实例
  10. Android编译系统分析二:mm编译单个模块