C++ 学习记录

文章目录

继承

  • 继承顾名思义就是对长辈本有的东西进行获取与使用,即两个以及两个类以上的关系
  • 在获取与使用时会存在一些情况:
    • public:长辈对外公开的自身所有物,最终都会是后代的
    • protected:受保护的自身所有物,最终也是后代的,但外人不知道
    • private:长辈私人所有的隐私物,不想让任何人知道和获取,所以后代以及其他人都不可知
  • 长辈与后代必须有严格先后,长辈的下一代不能是长辈的下一代的下一代,即兄弟关系不能变成父子关系。用程序语言来说,子类继承时,不能继承和自己平级的类,如下例子 [1]:
cpp 复制代码
class Shape
{
protected:
	float width_;
	float height_;
};

// 错误情况,在当前例子中,Rectangle类将会同时继承Shape和PaintCost两类
// 这样会导致无法区分所继承的成员变量是由哪一类传递来的
// class PaintCost: public Shape
// {
// };

// 正确情况
class PaintCost
{
};


class Rectangle : public Shape, public PaintCost
{
	public:
        int getArea()
        {
        	// 如果使用错误情况,此时无法明确width_和height_是继承自哪里
        	// 因为PaintCost类也继承了Shape类,所以也有width_和height_变量
            return (width_ * height_);
        }
};

重载和重写

区别

重载 重写
范围 同一类 不同类(基类与派生类之间,即多态概念)
声明样式 函数名相同,参数不同 函数名和参数都相同
关键字 可忽略不写 基类必须带有 virtual 关键字

重载

重写

参考文献

1\] https://www.w3cschool.cn/cpp/cpp-inheritance.html

相关推荐
牛奶咖啡1330 分钟前
学习设计模式《十二》——命令模式
学习·设计模式·命令模式·队列请求·宏命令·可撤销恢复操作·参数化配置
余厌厌厌38 分钟前
go语言学习 第9章:映射(Map)
服务器·学习·golang
委婉待续39 分钟前
Qt的学习(一)
开发语言·qt·学习
Dovis(誓平步青云)1 小时前
探索C++标准模板库(STL):String接口的底层实现(下篇)
开发语言·c++·stl·string
哆啦A梦的口袋呀1 小时前
基于Python学习《Head First设计模式》第七章 适配器和外观模式
python·学习·设计模式
恰薯条的屑海鸥1 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十期-Over Permission 模块)
学习·安全·web安全·渗透测试·网络安全学习
KyollBM1 小时前
【CF】Day75——CF (Div. 2) B (数学 + 贪心) + CF 882 (Div. 2) C (01Trie | 区间最大异或和)
c语言·c++·算法
feiyangqingyun2 小时前
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
c++·qt·udp·gb28181
CV点灯大师2 小时前
C++算法训练营 Day10 栈与队列(1)
c++·redis·算法
东京老树根2 小时前
SAP学习笔记 - 开发27 - 前端Fiori开发 Routing and Navigation(路由和导航)
笔记·学习