21xrx.com
2024-09-19 10:13:51 Thursday
登录
文章检索 我的文章 写文章
C++基类指针指向派生类的使用方法
2023-07-01 07:11:49 深夜i     --     --
C++指针 基类指针 派生类 使用方法 继承关系

在C++中,我们经常会遇到基类和派生类的概念。基类是派生类的父类,派生类是基类的子类。实际上,我们可以用一个基类指针来指向一个派生类对象来实现一些特殊的功能。下面就来讲一下C++基类指针指向派生类的使用方法。

首先,我们需要声明一个基类和一个派生类,代码如下:


class Shape {

public:

  virtual void draw() { }  // 画形状

};

class Rectangle : public Shape {

public:

  void draw() cout<<"Drawing a rectangle"<<endl;   // 画矩形

};

在这里,我们定义了一个基类Shape,其中有一个纯虚函数draw(),用于描述如何画一个形状。我们还定义了一个派生类Rectangle,它继承自基类Shape,并覆盖了draw()函数,用于画一个矩形。

接下来,我们可以用下面这段代码来定义一个基类指针并将其指向一个派生类对象:


Shape* pShape = new Rectangle;

在这里,我们定义了一个指向Shape类型的指针pShape,并将其指向了一个Rectangle对象。由于Rectangle是Shape的派生类,因此我们可以将指向Rectangle对象的指针赋值给指向Shape类型的指针。

现在,我们可以通过基类指针pShape来调用Rectangle类的函数draw()了,代码如下:


pShape->draw();  // Drawing a rectangle

在这里,我们调用了基类指针pShape的虚函数draw()。由于pShape指向的是一个Rectangle对象,因此实际上调用的是Rectangle类中的draw()函数,输出的结果是“Drawing a rectangle”。

总的来说,使用基类指针指向派生类对象是C++中非常常见的技巧。通过这种方法,我们可以在基类和派生类之间建立一个通用的接口,使得我们能够更方便地处理各种类型的数据。当然,在使用这种技巧的时候,我们需要注意基类和派生类之间的继承关系,以确保程序能够正确地执行。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复