protected的继承方式有什么特点_韦东山C++快速入门第3课第1节_初识继承

该系列文章主要整理了C++相关的知识点。对我个人而言,学习C++是为了能阅读理解Android源码里的C++代码,进而理解Android系统为什么要使用C++,并且是如何利用C++实现特定功能的。在Android实战中加深对C++的理解,边学边用,这样学习的效率才是最高的。

参考:

《韦东山第4期教学视频-Android-C++快速入门-第3课第1节_c++面向对象编程_访问控制和继承》

《C++语言程序设计(第3版本)》郑莉,大学入门教材,浅显但是有些知识点解释不清楚。

代码:

https://github.com/wuweidong0107/cpp_projects

10th_inheritance目录

一、了解继承

面向对象编程的4大核心:抽象、封装、继承、多态。前面已经初步接触到抽象和封装,现在来感受一下继承。面向对象编程,是为了尽量描述和解决现实世界的问题,而现实世界里,不同事物之间是相互联系的。继承便是众多联系中的一种,例如汽车和自行车都继承于交通工具,也可以说交通工具派生出汽车和自行车。

看下面这个例子:

person.cpp

class Person {
    
private:
    char *name;
    int age;
public:
    Person(char *name, int age) 
    {
        cout <<"Pserson(char*, int), name = "<", age= "<endl;this->age = age;this->name = new char[strlen(name) + 1];strcpy(this->name, name);
    }
    ~Person()
    { cout <"~Person()"<<endl;if (this->name) { cout <"name = "<endl;delete this->name;
        }
    }void setName(char *name){ if (this->name) { delete this->name;
        }this->name = new char[strlen(name) + 1];strcpy(this->name, name);
    }int setAge(int a){ if (a 0 || a > 150)
        {
            age = 0;return -1;
        }
        age = a;return 0;
    }void printInfo(void){ cout<<"name = "<", age = "<endl;
    }
};class Student : public Person {
};int main(int argc, char **argv){
    Student s;
    s.setName("zhangsan");
    s.setAge(16);
    s.printInfo();
}

现实世界里,Student属于Person的一种,为了重用Person里的代码,我们在程序里让Student继承了Person,此时称Person类是Student类的基类(或父类),或者反过来说,student类是Person类的派生类(或子类)。Student继承了Person后,就自动地获得了Person的setAge和setName的属性。

C++中,有3种继承方式:

public;

protected;

private,如果不显示给出继承方式,则认为是私有继承;

从基类继承

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值