C++基础(十五)-C++ 类继承

1.C++ 类继承

面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。
当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类

image.png

2.C++ 类继承规则

class derived-class: access-specifier base-class

  • access-specifier 访问修饰符 : public、protected 或 private 其中的一个
  • base-class 是之前定义过的某个类的名称。如果未使用访问修饰符 access-specifier,则默认为 private。
// 基类
class Animal {
    // eat() 函数
    // sleep() 函数
};
//派生类
class Dog : public Animal {
    // bark() 函数
};

3. 继承类型

  • 公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
  • 保护继承(protected): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。
  • 私有继承(private):当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。

4. 具体实现

4.1 定义头文件Aminal.h
#ifndef AMINAL_H
#define AMINAL_H
#include <iostream>
using namespace std;
class Aminal
{
private:
    int age;
protected:
    string sex;
    /* data */
public:
    Aminal(/* args */);
    ~Aminal();
    void setAge(int ae);
    int getAge();
    void setSex(string sx);
    string getSex(); 
};
#endif
4.2 头文件实现Aminal.cpp
#include <iostream>
#include "Aminal.h"
using namespace std;
Aminal::Aminal(/* args */)
{
}
Aminal::~Aminal()
{
}
void Aminal::setAge(int ae)
{
    age = ae;
}
int Aminal::getAge()
{
    return age;
}
void Aminal::setSex(string se)
{
    sex = se;
}
string Aminal::getSex()
{
    return sex;
}
4.3 Main.cpp 调用 Aminal.h
#include <iostream>
#include <Aminal.h>
using namespace std; 
class Dog: public Aminal{
   public:
    string getAgeAndSex()
    {
       auto a = getAge();
       return sex+"-"+ to_string(a);
    }

};
//  执行
int main() {
     Dog dg;
     dg.setAge(18);
     dg.setSex("男");
     cout<< "拿到值:"<<dg.getAgeAndSex()<<endl;
      return 0;
}

总结:继承类可以使用基类中的变量和函数,具体使用哪个根据你使用的继承类型有关

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • C++ 继承 面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个...
    苏州丸子阅读 8,428评论 0 5
  • 为什么写这篇文章 本文算作是 《Android 音视频开发打怪升级》系列文章的“番外”篇,原本打算将本文的内容写在...
    开发的猫阅读 8,810评论 4 38
  • C++类 & 对象 C++在C语言的基础上增加面向对象编程,也就是说C++支持面向对象程序设计(Java pyth...
    潘雪雯阅读 4,066评论 0 1
  • 面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更...
    资深小夏阅读 1,319评论 0 0
  • 1. 简介 继承 ,表示两个类的关系,即通过已存在的类来创建一个新的类。其中已存在的类称为基类,新创建的类则称为派...
    开源519阅读 1,454评论 0 0

友情链接更多精彩内容