Sadly, 这节课带过去的笔记本没电了 T^T

导致没有一行 Code, Sorry

笔记如下:

 Shape * p1;    //使用指针创建对象的方法
p = new Circle (2.0);
Shape * p2;
p = new Rectangle (3.0, 5.0); class Shape {
public:
virtual double area () = ; //Pure virtual function
} //Warning: 纯虚函数不能以内敛的形式进行定义,只能在类的外部定义 //如果,抽象基类中没有定义的虚函数,那么,在其派生类中定义也无法实现 //C++ 对象布局
//概念: 成员函数占的空间不在对象中,而在代码段中 EmptyClass es;
cout << sizeof (es); //输出为1,非空,即只存在es对象的地址 //1. C++ 给每个含有虚函数的类分配 virtual function table (Vtable)
//2. 给其每一个对象创建一个虚指针 //Override 覆盖: 基类中有虚函数,派生类中重新实现; 返回值类型也要一样
//Overload 重载
//Namebinding 隐藏: 派生类中定义了函数会把基类中所有同名函数隐藏
//恢复隐藏的方法 int x = d4.Base::f (); //实现间接访问被隐藏的虚函数,所谓的隐藏只是直接访问隐藏 //在构造函数,析构函数用虚函数,只会调用本类的实现
//在非静态成员函数中使用虚函数时,则会调用覆盖了的虚函数版本
//因为静态成员函数中无 this 指针 //RTTI : 运行时类型鉴别, 根据虚函数原理
Runtime Type indentification #include <typeinfo> //需要导入的头文件 typeid () //获取当前对象实际类型
typeid (br).name () //多重继承 class Dog : public Pet, public animal { }; //dynamic_case : 向下的类型转化 Dog * pd = dynamic_case <Dog *> (p); //1. 如果 p 的类型是 Dog * 类型,则 pd = p
//2. 否则,pd = NULL 为空 //只用于指针或引用,定义指针类中有虚函数,一定是多态类

面向对象程序设计-C++ Inheritance & Multiple inheritance & RTTI【第十三次上课笔记】的更多相关文章

  1. {key}面向对象程序设计-C++ polymorphism 【第十三次上课笔记】

    Peronal Link: http://segmentfault.com/a/1190000002464822 这节课讲了本门课程 面向对象程序设计中最为重要的一个部分 - 多态 /******** ...

  2. 面向对象程序设计-C++ Type conversion (Static) & Inheritance & Composition【第十二次上课笔记】

    这节课继续讲解了 static 作为静态数据成员 / 成员函数的用法 具体详解我都已注释出来了,大家可以慢慢看 有任何问题都可以在这篇文章下留言我会及时解答 :) //static 静态数据成员 // ...

  3. 2018面向对象程序设计(Java)第13周学习指导及要求

    2018面向对象程序设计(Java)第13周学习指导及要求 (2018.11.22-2018.11.25)  学习目标 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作机 ...

  4. 面向对象程序设计(JAVA) 第13周学习指导及要求

    2019面向对象程序设计(Java)第13周学习指导及要求 (2019.11.19-2019.11.25)   学习目标 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作 ...

  5. Python面向对象三要素-继承(Inheritance)

    Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...

  6. Multiple inheritance in Go

    原文:http://golangtutorials.blogspot.com/2011/06/multiple-inheritance-in-go.html --------------------- ...

  7. 面向对象第二个特征-继承(Inheritance)

    面向对象第二个特征-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java中的继承概述 1>.继承概述 多个类种存在相同属性和行为时,讲这 ...

  8. Multiple Inheritance in C++

    Multiple Inheritance is a feature of C++ where a class can inherit from more than one classes. The c ...

  9. [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图

    [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图  1.用例图简介 定义:用例图主要用来描述“用户.需求.系统功能单元”之间的关系. ...

随机推荐

  1. javamail发送二进制流附件的问题

    最近做个邮件发送功能,要内嵌图片并有附件. 需求很奇怪,图片和附件文件是放在ftp服务器上的,查了下javamail的文档. 添加附件方法如下 MimeBodyPart messageBodyPart ...

  2. Fedora 17配置ssh及Windows远程连接

    转载自:http://nanjingjiangbiao-t.iteye.com/blog/1794213 Fedora 23 默认已经安装好openssh server了,不用再装不过默认情况下没有开 ...

  3. cocos2d-x spine 加载粒子特效

    spine骨骼加载粒子效果 将粒子效果加到骨骼上,update位置和角度.h#ifndef __HOMESCENE_H__#define __HOMESCENE_H__#include "c ...

  4. LintCode-三数之和

    题目描述: 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组. 注意事项 在三元组(a, b, c),要求a <= b <= c ...

  5. C#使用系统的“显示桌面”功能(Shell.Application)

    原文 C#使用系统的“显示桌面”功能(Shell.Application) 在 Windows 系统的 任务栏 上的 快速启动栏 里,通常有一个图标  ,点击这个图标,就会切换到桌面.这个图标实际是一 ...

  6. Spring学习笔记1——IOC: 尽量使用注解以及java代码(转)

    在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IO ...

  7. VC获取精确时间的做法

    声明:本文章是我整合网上的资料而成的,其中的大部分文字不是我所为的,我所起的作用只是归纳整理并添加我的一些看法.非常感谢引用到的文字的作者的辛勤劳动,所参考的文献在文章最后我已一一列出. 对关注性能的 ...

  8. Dream

    即使下着雨,天空依旧明亮,因为远方有我的梦想.   ——forever97

  9. Ghost.py 0.1b3 : Python Package Index

    Ghost.py 0.1b3 : Python Package Index Ghost.py 0.1b3 Download Ghost.py-0.1b3.tar.gz Webkit based web ...

  10. Fractal(递归,好题)

    Fractal Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 8341   Accepted: 3965 Descripti ...