【C++ Primer 第十五章】 面向对象程序设计

OOP:概述

继承:通过继承联系在一起的类构成一种层次关系,通常在层次关系的根部有一个基类,其他类则直接或间接从基类继承而来,这些继承得到的类称派生类,基类负责定义层次关系中所有类共同拥有的成员,而每个派生类定义各自特有的成员。

虚函数:在C++语言中,基类讲类型相关的函数与派生类不做直接继承的函数关系区分对待,对于某些函数,基类希望它的派生类各自定义适合自己的版本,此时基类将这些函数声明称虚函数。
基类:

1 class Quote
2 {
3     public:
4         std::string isbn() const;
5         virtual double net_price (std::size_t n) const;
6 };

原文地址:https://www.cnblogs.com/sunbines/p/8848310.html

时间: 2024-10-10 06:18:02

【C++ Primer 第十五章】 面向对象程序设计的相关文章

C++primer第十五章. 面向对象编程

面向对象编程基于三个基本概念:数据抽象.继承和动态绑定. 15.1. 面向对象编程:概述 面向对象编程的关键思想是多态性(polymorphism). 之所以称通过继承而相关联的类型为多态类型,是因为在许多情况下可以互换地使用派生类型或基类型的“许多形态”.正如我们将看到的,在 C++ 中,多态性仅用于通过继承而相关联的类型的引用或指针. 继承 派生类(derived class)能够继承基类(baseclass)定义的成员,派生类可以无须改变而使用那些与派生类型具体特性不相关的操作,派生类可以

第十五章 面向对象程序设计 习题

15.3 1 class Quote 2 { 3 public 4 Quote()=default; 5 Quote(const std::string &book,double sales_price):bookNo(book), 6 price(sales_price){};//类的初始化 7 8 std::string isbn() const {return bookNo;} 9 10 virtual double net_price(std::size_t n) const 11 {r

第十五章 面向对象程序设计

15.1 虚函数:基类的成员函数,并在其前面添加关键字virtual,此类函数是基类希望其派生类进行覆盖的函数 15.2 protected:对应受保护成员,派生类可以访问该成员,但其他用户则禁止访问该成员 15.3 1 class Quote { 2 public: 3 Quote() = default; 4 Quote(const string &book, double sales_price): bookNo(book), price(sales_price) {} 5 string

C++Primer 第十五章

//1.面向对象程序设计的核心思想是数据抽象,继承,动态绑定. // 通过使用数据抽象,我们可以将类的接口和实现分离 // 使用继承,可以定义相似的类型并对其相似关系建模 // 使用动态绑定,可以在一定程度上忽视相似类型的区别,而以统一的方式使用它们的对象. //2.对于某些函数,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明为虚函数. // 使用基类的引用或指针调用一个虚函数的时候,将发生动态绑定:根据指针或引用指向的对象类型来调用基类或者派生类的虚函数. // 基类通常定

第二十五章 面向对象------封装、内置函数、反射、动态导入

1.封装 什么是封装? 1.对外部隐藏内部的属性,以及实现细节,给外部提供使用的接口 注意:封装有隐藏的意思,但不是单纯的隐藏 学习封装的目的:就是为了能够限制外界对内部数据的访问 python中属性的权限分为两种: 1.公开的 没有任何限制,谁都可以访问 2.私有的 只有当前类本身能狗访问 默认为公共的 为什么要封装? 1.提高安全性 封装属性 2.隔离复杂度 封装方法 一个类中分为两种数据:属性和方法 封装属性 class Student: def __init__(self,name,ag

C++ Primer Plus学习:第十五章

第十五章 友元.异常和其他 友元 友元类 表 0-1 class Tv { public: friend class Remote; } Remote类可以使用Tv的数据成员,Remote类在Tv类后定义 . 友元成员函数 表 0-2 class Tv; //前向声明 class Remote { public: void chanup(Tv &t); } class Tv { public: friend void Remote::set_chan(Tv& t, int c); } 异常

C++ Primer学习总结 第15章 面向对象程序设计

第15章 面向对象程序设计 1.    构造基类和派生类. 其中A类是基类,B类是派生类.派生类的构造函数必须重新写过,不能继承.(因为毕竟两个类的类名都不一样,不可能构造函数继承)只继承其他的成员函数和成员变量. 派生类可以覆盖基类的虚函数,但是也可以选择不覆盖(即直接使用父类的函数版本)比例A类的print_1()虚函数就没有被覆盖. 基类的静态成员:如果基类有一个静态成员,那么基类和所有派生类都共同拥有这仅有的一个静态成员. 2.    基类的虚函数默认实参最好与派生类的虚函数默认实参一致

20190901 On Java8 第十五章 异常

第十五章 异常 要想创建健壮的系统,它的每一个构件都必须是健壮的. 异常概念 C++的异常处理机制基于 Ada,Java 中的异常处理则建立在 C++的基础之上(尽管看上去更像 Object Pascal). 基本异常 异常参数 所有标准异常类都有两个构造器:一个是无参构造器:另一个是接受字符串作为参数,以便能把相关信息放入异常对象的构造器. Throwable 是异常类型的根类. 自定义异常 对异常来说,最重要的部分就是类名. 异常与记录日志 对于异常类来说,getMessage() 方法有点

深入浅出Zabbix 3.0 -- 第十五章 Zabbix 协议与API

今天是六.一儿童节,祝小朋友们节日快乐!发完此文就带我家小朋友出去玩耍了. 第十五章 Zabbix 协议与API 本章将介绍和开发相关的Zabbix协议和API的内容,通过对Zabbix协议和API的深入了解,你可以利用Zabbix协议编写客户端程序并将其嵌入的产品或系统中,并将数据发送到Zabbix server,这在无法安装Zabbixagent等程序的场景(例如专用的嵌入式系统)中非常有用.你也可以利用Zabbix API开发自己的业务系统,或灵活的与现有系统整合集成. 15.1 Zabb