原文:c++中指向对象的指针为NULL时可以调用对象成员函数吗

问题貌似有点奇怪,指针都为NULL了怎么还可使用 但其实不是的,可以看以下代码: 输出结果如下: 可以看出虽然指针为NULL,但是依然可以使用a gt showSth 函数,说明指向对象的指针为NULL时可以调用对象成员函数。这也说明了类的成员函数保存地址显然与实例化的对象保存地址不同,不然要依赖实例化的对象地址寻址函数无疑是水中捞月 类中的函数完全可以看作是一个一般的函数只是多了个隐藏的this ...

2018-09-19 09:53 2 911 推荐指数:

查看详情

C++指向成员函数指针

C++指向函数指针定义方式为: 返回类型 (*指针名)(函数参数列表),例如 void (*p)(int)是指向一个返回值为void 参数为int类型的函数。 而若想定义一个指向成员函数函数指针该怎么定义呢?对成员函数指针的使用。 (1)非静态成员函数 定义方式:返回类型 (类名 ...

Fri Nov 16 04:13:00 CST 2012 0 8713
C++ 面向对象成员函数this指针

每个类成员函数都只涉及一个对象, 即调用它的对象。 但有时候方法可能涉及到两个对象, 在这种情况下需要使用C++ 的 this 指针 假设将方法命名为topval(), 则函数调用stock1.topval()将访问stock1的对象数据;stock2.topval()将访问stock2 ...

Thu Jun 14 00:51:00 CST 2018 0 869
C++对象指针指向对象成员指针

对象有地址,存放对象初始地址的指针变量就是指向对象指针变量。对象中的成员也有地址,存放对象成员地址的指针变量就是指向对象成员指针变量。1、指向对象数据成员指针定义指向对象数据成员指针变量的方法和定义指向普通变量的指针变量方法相同。例如 int *p1; //定义指向整型数据的指针变量 ...

Mon Oct 07 00:54:00 CST 2013 0 3473
c++对象和常成员函数详解

num; 需要特别说明的是: 1. 常对象只能调用成员函数,不能调用普通成员函数 (除了隐式调 ...

Sun Jul 16 05:52:00 CST 2017 0 1477
C++成员函数、常数据成员、常对象

成员函数在声明和实现时都要带 const 关键字 常成员函数不能修改对象的数据成员,也不能访问类中没有用 const 声明的非常成员函数。 在任何函数中都不能对常数据成员赋值。对常数据成员初始化,只能通过构造函数的初始化列表。 常对象的数据成员在它的生存期内不会被改变,因此定义常对象 ...

Mon Mar 30 23:38:00 CST 2020 0 699
C++调用成员函数指针传递this参数

成员函数指针,顾名思义,就是函数指针,不过这个函数不是全局函数,而是一个类的成员函数。 比如上面这段代码中,A::seta就是成员函数。 (动态)成员函数和全局函数本质上并无不同,都是函数代码所在的内存地址。不同的是在调用时必须传递this指针,比如你可以这样调用a.seta ...

Tue Jun 27 20:24:00 CST 2017 0 1217
C++(三十二) — 常对象、常成员变量、常成员函数

  常量:对于既需要共享、又需要防止改变的数据。在程序运行期间不可改变。   const 修饰的是对象中的 this 指针。所以不能被修改。   this指针存在于类的成员函数中,指向调用函数所在的类实例的地址。 1、常对象   数据成员值在对象的整个生存期内不能改变。在定义 ...

Fri Jan 04 18:31:00 CST 2019 0 1377
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM