信息课做动漫网站,百度小说风云榜总榜,一个网站怎么做提现自动到账,合伙建网站什么是继承
(1)继承是C源生支持的一种语法特性#xff0c;是C面向对象的一种表现 (2)继承特性可以让派生类“瞬间”拥有基类的所有#xff08;当然还得考虑权限#xff09;属性和方法 (3)继承特性本质上是为了代码复用 (4)类在C编译器的内部可以理解为结构体#xff0c;派…什么是继承
(1)继承是C源生支持的一种语法特性是C面向对象的一种表现 (2)继承特性可以让派生类“瞬间”拥有基类的所有当然还得考虑权限属性和方法 (3)继承特性本质上是为了代码复用 (4)类在C编译器的内部可以理解为结构体派生类是由基类成员叠加派生类新成员得到的 派生类又叫子类基类又叫父类。两种叫法都有人常用我们后面会混用锻炼大家瞬间了然的能力
继承中的权限管控
C类中的访问权限管控回顾 (1)public 类内部可以访问类的外部可以访问 (2)private 类内部可以访问类的外部不能访问 (3)protected 类内部可以访问类的外部不能访问
1、父类的private成员在三种继承下都会被变成在子类中是比private还可怜的这种成员 2、父类的public成员在public继承下到子类中还是public在protected继承下到子类中是protected的在private继承下到子类中是private的。 3、父类的protected成员在public继承下到子类中是protected的在protected继承下到子类中是protected的在private继承下到子类中是private的。 4、private如果是父类中的private权限成员那么在继承时会被降到比private还惨的这种而如果是private继承则不会导致父类中public和protected的成员降权到比private还惨的这种只会降级到private权限。 5、在继承中父类中所有的成员不管哪种权限都会被继承给子类而不会丢失任何一个。
派生类和基类的构造析构关系
派生类并不继承基类的构造和析构函数只继承成员变量和普通成员方法
派生类的构造函数一定会调用基类的构造函数析构也一样
#include iostream// 基类
class Animal {
public:// 带参数的基类构造函数Animal(const std::string name) : name_(name) {std::cout Animal constructor called for name_ std::endl;}// 基类析构函数virtual ~Animal() {std::cout Animal destructor called for name_ std::endl;}private:std::string name_;
};// 派生类
class Pigeon : public Animal {
public:// 带参数的派生类构造函数Pigeon(const std::string name, int age) : Animal(name), age_(age) {std::cout Pigeon constructor called for name aged age_ std::endl;}// 派生类析构函数~Pigeon() {std::cout Pigeon destructor called for age age_ std::endl;}private:int age_;
};int main() {Pigeon p(Polly, 3);return 0;
} 为什么派生类的构造析构必须调用基类的某个构造析构 (1)牢记构造函数的2大作用初始化成员分配动态内存 (2)派生类和基类各自有各自的构造函数和析构函数所以是各自管理各自的成员初始化各自分配和释放各自所需的动态内存 (3)继承的语言特性允许派生类调用基类的构造和析构函数以管理派生类从基类继承而来的那些成员。 (4)明确派生类的构造和析构处理的永远是派生类自己的对象只是派生类对象模板中有一部分是从基类继承而来的而已。
总结
理解继承是什么 继承时是全部继承方法和属性 方法和属性的权限分三类private、public、protected 继承时会导致方法和属性的权限被改变 理解继承的体系设计原理 理解派生类会怎么样调用基类的构造、析构函数
学习记录侵权联系删除。 来源朱老师物联网大课堂