父类指针和子类指针的步长问题
2018-01-14 18:02
316 查看
//#include "stdafx.h" #include <iostream> using namespace std; class Animal { public: Animal(int _a) : a(_a) {} virtual void test() { cout << "父类test函数调用" << endl; } virtual ~Animal() { cout << "~Animal" << endl; } protected: int a; }; class Mouse : public Animal { public: Mouse(int _b) : Animal(_b) {} virtual void test() { cout << "子类test函数调用" << endl; } virtual ~Mouse() { cout << "~Mouse" << endl; } protected: int b; }; void Pause() { Mouse m[3] = { Mouse(2), Mouse(2), Mouse(2) }; Animal *Ap = m; Mouse *Mp = m; cout << sizeof(Animal) << " " << sizeof(Mouse) << endl; //父类int 4 vptr 4 子类int 4+4 vptr 4 Ap->test(); Mp->test(); Ap++; //+8 Mp++; //+12 //Ap->test(); Mp->test(); } int main() { Pause(); system("pause"); return 0; }
相关文章推荐
- 父类指针的步长和子类指针的步长问题
- C++学习——父类指针和子类指针的步长问题
- 一定要注意c++父类与子类指针步长的问题!
- C++ 多态问题:为什么不直接用子类引用子类,而是用父类指针指向子类
- 父类子类指针相互转换问题
- C++指针问题--为什么父类指针可以指向子类反之则不行
- C++关于父类指针指向子类对象的问题
- 父类子类指针相互转换问题
- 父类指针的步长和子类指针的步长不一样
- 【转】父类子类指针相互转换问题
- c++ 父类指针转换为子类指针后调用子类的成员函数问题
- 父类子类指针相互转换问题
- 有关java中子类覆盖父类的方法的返回值的问题
- [Unity&继承&序列化&JSON]在JSON数据中,子类继承父类问题
- C++父类指针指向子类对象
- 子类重写父类的方法应注意的问题
- 多态---父指针指向子类对象(父类引用指向子类对象)
- 用 c 语言实现类的继承,并且可用父类指针操作子类对像的一个测试例子
- C++虚函数表解析(图文并茂,非常清楚)( 任何妄图使用父类指针想调用子类中的未覆盖父类的成员函数的行为都会被编译器视为非法)good
- 关于基类指针指向子类对象,构造函数和析构函数调用的顺序的问题。