C++调用成员函数需要this指针的情况
2014-08-08 21:32
561 查看
1、虚成员函数,因为需要this指针寻找虚表指针
2、成员函数中对数据成员进行了操作
#include "stdafx.h" #include <iostream> #include <typeinfo> using namespace std; class A { public: virtual void foo() { cout<<"A foo"<<endl; } void pp() { cout<<"A PP"<<endl; } }; class B:public A { public: B() { num=100; } void foo() { cout<<"B foo"<<endl; } void pp() { cout<<"B PP"<<endl; } void FunctionB() { cout<<"Excute FunctionB!"<<endl; } void show() { cout<<num; } private: int num; }; int main(int argc,char* argv[]) { A a; A* pa=&a; B *pb0,*pb; pb0->FunctionB(); pb=dynamic_cast<B*>(pa); if(pb==NULL) { cout<<"The pointer pb is null"<<endl; } (dynamic_cast<B*>(pa))->FunctionB(); (dynamic_cast<B*>(pa))->foo(); //执行出错,因为需要this指针 (dynamic_cast<B*>(pa))->show(); //执行出错,因为需要this指针 system("pause"); return 0; }
相关文章推荐
- C++调用一个成员函数的需求this指针的情况
- C++中通过派生类调用第二基类的普通成员函数时this指针的调整
- 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?
- C++成员函数 this指针 调用约定
- c++ 如何把this指针传入成员函数 像全局函数一样调用成员函数
- C++中的成员函数调用原理及this指针的传递方式
- 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?
- 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?
- C++成员函数指针的另类调用方法
- C++指针直接调用类成员函数探讨
- C++指针直接调用类成员函数探讨
- C++关于this指针、静态变量和静态成员函数 http://www.cnblogs.com/clrmas/archive/2010/03/23/1692893.htm
- 转:C++指针直接调用类成员函数探讨
- C/C++中为什么在类外利用多态基类指向派生类指针可以调用类的私有成员函数?
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- C++关于this指针、静态变量和静态成员函数
- C++成员函数指针定义和调用
- [转]浅谈C++指针直接调用类成员函数
- C++指针直接调用类成员函数探讨(zz)
- 转: C++指针直接调用类成员函数探讨