美文网首页
Boolan Week3笔记

Boolan Week3笔记

作者: Impluse | 来源:发表于2017-11-06 01:51 被阅读0次

本周主要讲了

(1)Inheritance 继承

表示 is-a,代码 例如

class A

{ …};

class B: public A  // 用public继承较多,A为父类,B为子类

{…};

继承与虚函数一起使用最有价值,构造由内到外,析构由外到内。

base class 的 dtor 必须为 virtual , 否则会出现 undefined behavior。

(2)Composition 复合

表示 has-a,代码 例如

class Student

{

private:

string name;

valarray<double> scores;  //Student类,包含valarray类的成员。

};

复合构造由内而外,析构由外而内。

(3)Delegation 委托

Composition by reference. 代码 例如

Class A

{

private:

B*  refb;  // 用指针指向B类

};

A与B类不会同时创建,需要B类时才会创建。

(4)virtual function 虚函数

non-virtual函数:你不希望子类重新定义(override,复写)它。

virtual函数:你希望子类重新定义,并且你对它已有默认定义。

//用virtual去修饰成员函数即可使其成为虚函数

pure virtual函数:你希望子类一定要重新定义,你对它没有定义。

virtual void draw() const =0;

//纯虚函数子类必须全部定义后,父类才可以new。

//父类的析构函数必须为virtual。

//如果要想实现动态多态则必须使用虚函数

//普通函数不能是虚函数,也就是说这个函数必须是某一个类的成员函数,不可以是一个全局函数,否则会导致编译错误。

//静态成员函数不能是虚函数 static成员函数是和类同生共处的,他不属于任何对象,使用virtual也将导致错误。

//内联函数不能是虚函数 如果修饰内联函数 如果内联函数被virtual修饰,计算机会忽略inline使它变成存粹的虚函数。

//构造函数不能是虚函数,否则会出现编译错误。

部分引用于 http://www.cnblogs.com/jin521/p/5602190.html

相关文章

  • Week3(Boolan)

    基于对象的设计OOD--------->面向对象的编程OOP(类之间的关系) 复合Composition:设计模式...

  • Boolan Week3笔记

    本周主要讲了 (1)Inheritance 继承 表示 is-a,代码 例如 class A{ …};class ...

  • Boolan 设计模式-week3

    “对象性能”模式 Singleton 模式:保证一个类仅有一个实例,并提供一个该实例的全局访问点。 补充:http...

  • C++面向对象高级编程(上)-第一周笔记 | Boolan

    笔记时间:2017-10-09 ~ 2017-10-23 来源:网易云课堂 / Boolan / GeekBan...

  • C++面向对象 Week3——Boolan

    面向对象三大类: Composition 复合 Delegation 委托 Inheritance 继承 一、Co...

  • C++设计模式 week3 (Boolan)

    “对象性能”模式 面向对象很好的解决了“抽象”的问题,但是不可避免地要付出一定的代价。对于通常情况来讲,面向对象的...

  • 无标题文章

    Boolan-C++面向对象高级编程(上)第三周笔记 类与类之间的关系 一.继承inheritance:is a ...

  • C++笔记第一周(Boolan)

    C++笔记第一周(Boolan) 头文件的防卫式声明: 函数在class body里定义完成则默认inline 函...

  • Scala Parallelization

    Coursera - Parallel Programming Week3 - Data Parallelism ...

  • 复分析

    week3 week3 -柯西-黎曼等式 如果函数 在 出可微: 反之,如果不满足柯西-黎曼等式.则函数在上不可微...

网友评论

      本文标题:Boolan Week3笔记

      本文链接:https://www.haomeiwen.com/subject/midkmxtx.html