ToB企服应用市场:ToB评测及商务社交产业平台

标题: 一文搞懂C++继承、多继承、菱形继承、虚继承 [打印本页]

作者: tsx81429    时间: 2024-5-30 17:12
标题: 一文搞懂C++继承、多继承、菱形继承、虚继承
继承


目录

继承

继承的访问权限

继承的访问权限的作用是将继承下来的父类成员的原有的权限进行缩小.
类权限

类成员\继承方式public继承protected继承private继承基类的public成员派生类的public成员派生类的protected成员派生类的private成员基类的protected成员派生类的protected成员派生类的protected成员派生类的private成员基类的private成员在派生类中不可见在派生类中不可见在派生类中不可见
基类的private成员最特别,继承后子类不可见. 其他权限成员无论被什么方式继承至少子类本身内部可见

子类赋值给父类

赋值兼容规则

在公有继承中,子类可以赋值给父类 并且是自然支持(编译器直接行为),没有临时变量,(不是隐式类型转换,不存在类型转换发生)
“自然”的行为

“赋值”过程是通过切片方式,通过调用父类拷贝构造/赋值运算符重载完成赋值,将从父类继承下的部分依次赋值给父类,
引用和指针也是类似,通过切片方式,直接引用/指向子类中父类的一部分,也是"自然"的,不存在类型转换的发生
切片不是丢弃,是分别
验证:

1. 其他权限继承可否支持赋值兼容规则

[code]class Person{public:    Person(std::string name, int age) :_name(name), _age(age)    {};    void Print(){        std::cout




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4