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

C++中,基类的指针指向派生类的对象

2017-01-19 16:12 639 查看
1,基类的指针指向派生类的对象,指向的是派生类中基类的部分。所以只能操作派生类中从基类中继承过来的数据和基类自身的数据。

2,C++的多态性可以解决基类指针不能操作派生类的数据成员的问题。

例子如下:

一,普通的基类的指针指向派生类的对象

#include <iostream>

using namespace std;

class Virtualbase

{

public:

void Demon(){ cout << "this is Virtualbase class" << endl; };

void Base() { cout << "this is farther class" << endl; };

};

class SubVirtual :public Virtualbase

{

public:

void Demon() {

cout << "this is SubVirtual!" << endl;

}

void Base() {

cout << "this is subclass Base" << endl;

}

};

void main()

{

Virtualbase* inst = new SubVirtual();

inst->Demon();

inst->Base();

system("pause");

return;

}

运行结果为:

this is Virtualbase class

this is farther class

二,C++的多态,基类的指针指向派生类的对象

#include <iostream>

using namespace std;

class Virtualbase

{

public:

virtual void Demon(){ cout << "this is Virtualbase class" << endl; };

virtual void Base() { cout << "this is farther class" << endl; };

};

class SubVirtual :public Virtualbase

{

public:

void Demon() {

cout << " this is SubVirtual!" << endl;

}

void Base() {

cout << "this is subclass Base" << endl;

}

};

void main()

{

Virtualbase* inst = new SubVirtual();

inst->Demon();

inst->Base();

system("pause");

return;

}

运行结果为:

this is SubVirtual!

his is subclass Base
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: