本文主要是介绍C++中父子类中指针的步长问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <iostream>
using namespace std;class Parent
{
public:Parent(int a=0){this->a = a;}virtual void print(){cout << "我是爹" << endl;}
private:int a;
};class Child:public Parent
{
public:Child(int a = 0, int b = 0) :Parent(a){this->b = b;}virtual void print(){cout << "我是儿子" << endl;}
private:int b;
};void print(Parent *base)
{base->print();
}int main()
{Child c1;Parent *pP = NULL;Child *pC = NULL;Child array[] = {Child(1),Child(2),Child(3)};pP = array;pC = array;pP->print();pC->print();pP++;pC++;pP->print();pC->print();pP++;pC++;return 0;
}
/*
结论:只要子类中 多了一个属性 两个步长就不一致了通过指针的移动去查找内容是不行的了
*/
这篇关于C++中父子类中指针的步长问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!