15.1——面向对象

数据抽象,继承,动态绑定

(1)在C++中,通过基类的指针或引用调用虚函数时发生动态绑定,既可以指向基类对象也可以指向派生类对象

这一事实是发生动态绑定的关键。用引用或指针调用的虚函数在运行时确定,被调用的函数是引用或指针所指对象

的实际类型。

(2)任意的非static成员函数都可以是虚函数,虚函数virtual字眼只能出现在类体里面

访问控制:

(1)private成员:基类的private成员只能由基类的成员函数和友元访问。

(2)派生类只能访问基类的public成员而不能访问private(访问权限与其他程序一样)

(3)protected成员:派生类可以访问,但其他普通用户仍不能访问。

时间: 2024-10-12 01:47:39

15.1——面向对象的相关文章

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

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

第15章 面向对象程序设计

面向对象的核心是:数据抽象.继承.动态绑定 数据抽象:将类的接口与实现分离 继承:对类型的相似关系进行定义建模 动态绑定:忽略相似类的区别,统一使用它们的对象 15.2基类与派生类 class Base { public: Base() = default; Base(int value) :value(value){} virtual int get_value() { return value; }; virtual ~Base() = default; private: int value

python基础15(面向对象编程)

虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程. 一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义: class className: block 注意类名后面有个冒号,在block块里面就可以定义属性和方法了.当一个类定义完之后,就产生了一个类对象.类对象支持两种操作:引用和实例化.引用操作是通过类对象去调用类中的属性或者方法,而实例化是产生

15:面向对象三大特性(封装、继承、多态)之多态

本小节知识点: [了解]什么是多态? [掌握]多态的条件 [了解]多态的优点 1.什么是多态? 什么是多态:多态就是某一类事物的多种形态 猫: 猫-->动物 狗: 狗-->动物 男人 : 男人 -->人 -->高级动物 女人 : 女人 -->人 -->高级动物 程序中的多态:父类指针指向子类对象 2.多态的条件 有继承关系 子类重写父类方法 父类指针指向子类对象 狗 *g = [狗 new]; 动物 *a = [狗 new]; 猫 *c = [猫 new]; 动物 *a

Python学习:15.Python面向对象(二、继承的各种情况)

一.什么是继承 继承是一种创建类的方法,在python中,一个类可以继承来自一个或多个父.原始类称为基类或超类. #创建父类 class Parent1: pass class Parent2: pass # 继承父类,单继承 class Obj1(Parent1): pass #继承父类,多继承 class Obj2(Parent1,Parent2): pass 二.什么时候使用继承 在已经创建的几个类中,这几哥类中的方法和变量有相同的,这种时候我们就可以使用类的继承,将其它类中已有的方法和变

【原】Java学习笔记014 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 面向对象思想 6 7 // 回顾编程语言思想进化之路:从面向过程到面向对象 8 9 // 面向过程 10 // 举例: 11 // 1.冰箱门打开 12 // 2.大象放进去 13 // 3.冰箱门关上 14 // [面向过程的思路的着眼点在于动作的功能,思考打开.放入.关闭均为动作] 15 16

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

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

[WuDe]C#程序设计教程 - 第2章 C#面向对象基础

第2章 C#面向对象基础 2.1 类 类是一种数据类型,而对象是具有这种类型的变量 [类的修饰符] class 类名 [:基类名] { //类的成员 }[;] 访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中"封装"的目的;控制对外访问权限 在类这个级别,不写访问修饰符默认为internal,类只有两个访问修饰符,public 和internal (暂时这样理解),在类里面,方法外定义变量或方法前不加访问修饰符,默认为private Public公共类:不受限制对该类

C++ Primer(第4版)-学习笔记-第4部分:面向对象编程与泛型编程

第15章 面向对象编程OOP(Object-oriented programming)           面向对象编程基于三个基本概念:数据抽象.继承和动态绑定. 在 C++ 中,用类进行数据抽象,用类派生从一个类继承另一个:派生类继承基类的成员.动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义 的函数. private  成员 •  通过类对象无法访问类的private成员. •  在派生类中不能访问基类的private成员.  •  private 成员只能在当前类的