C++面向对象高级编程(上) 第三周笔记 GeekBand

Posted zhanghouyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++面向对象高级编程(上) 第三周笔记 GeekBand相关的知识,希望对你有一定的参考价值。

复合:has a

构造由内而外:

Container的构造函数首先调用componentdefault(默认)构造函数,然后再执行自己的构造函数:

Container::container(...)component(){...}

 

析构由外而内:

Container的析构函数首先析构自己,然后再析构component

Container::~container() {... ~component()}

 

Delegationhas a (composition by reference)

 

继承:is a

构造由内而外:

Derived的构造函数首先调用Basedefault(默认)构造函数,然后再执行自己的构造函数:

Derived::Derived(...)Base(){...}

 

析构由外而内:

Derived的析构函数首先析构自己,然后再析构Base

Derived::~Derived() {... ~Base()}

Base class 的析构必须是虚析构

 

非虚函数:你不希望derived class重新定义

虚函数:你希望derived class重新定义,并且有默认定义

纯虚函数:没有默认定义,derived class必须重新定义

继承函数是继承调用权

 

子类对象调用父类函数:

 

 

1.conversion fnction:转换函数

Class Fraction

{

public:

Fraction(int num,int den=1):m_numerator(num),m_denominator(den){}

operator double() const {

return (double)(m_numerator/m_denominator);

}

private:

int numerator;

int denominator;

};

 

Non-explicit-one-argument ctor:

 

Class Fraction{

 

Fraction operator +(const  Fraction& f){

Return Fraction(...);

 ...}

以上是关于C++面向对象高级编程(上) 第三周笔记 GeekBand的主要内容,如果未能解决你的问题,请参考以下文章

C++面向对象高级编程(下) 第一周笔记 GeekBand

C++面向对象高级编程(下) 第二周笔记 GeekBand

第三周java学习总结

[C++ 面向对象高级编程]string类的实现过程

[C++ 面向对象高级编程]Complex类的实现过程

20165306 第三周学习任务