您的位置:首页 > 编程语言 > C语言/C++

C++中父子类中指针的步长问题

2016-10-30 23:43 176 查看
#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;
}
/*
结论:
只要子类中 多了一个属性 两个步长就不一致了
通过指针的移动去查找内容是不行的了
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: