21xrx.com
2024-09-20 06:03:40 Friday
登录
文章检索 我的文章 写文章
C++中如何使用父类指针调用函数
2023-07-05 09:36:35 深夜i     --     --
C++语言 父类指针 函数调用

在C++中,父类指针指向派生类的对象是一种常见的面向对象编程技巧,也是多态的一种体现。当我们使用父类指针指向派生类对象时,可以方便地调用相应的函数。

首先,需要定义一个父类和一个派生类。例如,我们定义一个Animal类作为父类,定义一个Dog类作为Animal类的派生类。Dog类中有自己的独特属性和方法。


class Animal {

public:

  virtual void walk()

    cout << "Animal walks." << endl;

  

}

class Dog : public Animal {

public:

  void bark()

    cout << "Dog barks." << endl;

  

  void walk()

    cout << "Dog walks." << endl;

  

}

在上述代码中,我们定义了父类Animal和派生类Dog,其中Animal类中定义了一个虚函数walk(),而Dog类中则定义了自己的方法bark()和重写了Animal类中的walk()方法。

接下来,我们可以定义一个Animal类型的指针,让它指向一个Dog类对象。然后,我们可以使用该指针调用父类中的方法和派生类中的方法。


int main() {

  Animal *animal = new Dog();

  animal->walk(); // 调用派生类中的walk()方法

  Dog *dog = dynamic_cast<Dog*>(animal);

  dog->bark(); // 调用派生类中的bark()方法

  delete animal; // 释放内存

  return 0;

}

在上述代码中,我们定义一个Animal类型的指针animal,用new运算符动态分配了一个Dog类对象,并将该对象的地址赋给animal。然后,我们使用animal指针调用了父类的walk()方法和派生类的bark()方法。需要注意的是,要使用dynamic_cast将Animal类型的指针转换为Dog类型的指针,才能够调用Dog类的方法。

总的来说,在C++中使用父类指针调用函数是一种非常常见的面向对象编程技巧,通过使用这种方法,我们可以方便地调用派生类中的方法,提高程序的可扩展性和可维护性。

  
  

评论区

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