21xrx.com
2024-11-22 03:36:59 Friday
登录
文章检索 我的文章 写文章
C++中子类如何继承父类的方法
2023-07-05 09:40:43 深夜i     --     --
C++ 子类 继承 父类 方法

C++中的继承是面向对象编程中常见的概念,它允许子类继承父类的属性和方法。在继承中,子类可以继承父类的方法,这样可以减少代码的重复性并利用已有的代码来实现新的功能。

子类继承父类的方法可以通过以下三种方法实现:

1.使用public继承

在使用public继承时,子类可以继承父类所有的公共方法和属性,而父类的私有和受保护的方法和属性则不能被继承。继承后,子类可以访问和使用父类的公共方法和属性。

下面是一个public继承的示例:


class Animal {

public:

 void move()

  cout << "animal moving" << endl;

 

};

class Dog : public Animal {

public:

 void bark()

  cout << "barking" << endl;

 

};

在上述代码中,Dog类继承Animal类,可以调用Animal类的move()方法。Dog类也可以定义自己的方法,比如bark()。

2.使用protected和private继承

在使用protected和private继承时,父类的公有、保护和私有方法和属性都会被继承,但是访问权限受限制。为了访问父类的私有、保护方法和属性,子类必须使用父类的公有或保护方法。

下面是一个protected继承的示例:


class Animal {

public:

 void move()

  cout << "animal moving" << endl;

 

protected:

 void sleep()

  cout << "animal sleeping" << endl;

 

};

class Dog : protected Animal {

public:

 void bark() {

  cout << "barking" << endl;

  sleep();

 }

};

在上述代码中,Dog类使用了protected继承。它可以访问Animal类中的protected方法sleep(),同时也可以定义自己的方法bark()。

3.虚函数继承

虚函数继承可以允许子类重写父类的方法。在这种情况下,子类可以根据自己的需求重写和扩展原有的方法。当子类调用被重写的父类的方法时,将会调用子类的重写方法。

下面是一个具有虚函数的示例:


class Animal {

public:

 virtual void move()

  cout << "animal moving" << endl;

 

};

class Dog : public Animal {

public:

 void move()

  cout << "dog moving" << endl;

 

};

在上述代码中,Animal类中的move()方法被声明为虚函数。Dog类重写了该方法,当子类调用move()方法时,会调用Dog类的move()方法。

在C++中,子类的继承和方法的调用涉及到许多的细节和规则。因此,在设计和开发子类时,请务必遵守它们。

  
  

评论区

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