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

相关推荐
StandbyTime2 分钟前
《算法笔记》学习记录-第一章
c++·算法·算法笔记
hhhjhl3 分钟前
flutter_for_openharmony逆向思维训练app实战+学习日历实现
学习·flutter
近津薪荼7 分钟前
优选算法——双指针8(单调性)
数据结构·c++·学习·算法
f狐0狸x8 分钟前
【C++修炼之路】C++ list容器基本用法详解
开发语言·c++·list
wWYy.14 分钟前
C++-集群聊天室(2):muduo网络库
网络·c++
从此不归路40 分钟前
Qt5 进阶【13】桌面 Qt 项目架构设计:从 MVC/MVVM 到模块划分
开发语言·c++·qt·架构·mvc
历程里程碑1 小时前
Linux15 进程二
linux·运维·服务器·开发语言·数据结构·c++·笔记
不光头强1 小时前
shiro学习要点
java·学习·spring
HAPPY酷1 小时前
构建即自由:一份为创造者设计的 Windows C++ 自动化构建指南
开发语言·c++·ide·windows·python·策略模式·visual studio
xiaoye-duck1 小时前
C++ string 底层原理深度解析 + 模拟实现(上)——面试 / 开发都适用
c++·面试·stl