21xrx.com
2024-11-22 11:17:28 Friday
登录
文章检索 我的文章 写文章
如何在C++中继承父类成员函数
2023-06-22 00:12:37 深夜i     --     --
C++ 继承 父类成员函数 实现方法 语法规则

在C++中,继承父类成员函数是一种常见的类继承方式,可以让子类自动继承父类的属性和方法,同时还可以在子类中重写父类的方法。本文将介绍如何在C++中继承父类成员函数。

C++中的继承关系被视为一种“是一个”的关系,即子类是父类的特殊类型。在C++中,使用关键词“public”、“protected”、“private”定义继承关系,其中:

- public继承表示子类继承了父类的公有成员和方法,可以在子类中自由访问。

- protected继承表示子类继承了父类的公有和保护成员和方法,不能在子类外部直接访问,但在子类内部可以自由访问。

- private继承表示子类继承了父类的公有、保护和私有成员和方法,不能在子类外部直接访问,但在子类内部可以自由访问。

在C++中,通过关键词“class”或“struct”定义一个类,使用冒号“:”来表示继承关系。例如,下面的代码定义了一个父类Animal和一个子类Cat:


class Animal {

public:

  void eat()

    cout << "Animal eats." << endl;

  

protected:

  void sleep()

    cout << "Animal sleeps." << endl;

  

private:

  void run()

    cout << "Animal runs." << endl;

  

};

class Cat : public Animal {

public:

  void purr()

    cout << "Cat purrs." << endl;

  

};

在上面的代码中,Cat类使用关键词“public”继承了Animal类的公有成员和方法,因此Cat类可以使用Animal类中的成员函数eat(),也可以在子类中新增成员函数purr()。

要使用父类的成员函数可以直接在子类对象上调用,例如:


Cat cat;

cat.eat(); // 调用父类成员函数eat()

当然,子类也可以重写父类的成员函数。例如,在Cat类中重写父类的成员函数sleep():


class Cat : public Animal {

public:

  void sleep()

    cout << "Cat sleeps." << endl;

  

  void purr()

    cout << "Cat purrs." << endl;

  

};

当Cat对象调用sleep()函数时,会执行子类中的sleep()函数:


Cat cat;

cat.sleep(); // 调用子类的成员函数sleep()

在C++中,利用继承父类成员函数可以大大提高代码的重用性和可维护性。同时,子类中还可以通过重写父类的成员函数,实现更加灵活的功能。

  
  

评论区

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