美文网首页
C++面向对象高级编程(上)-第一周笔记 | Boolan

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

作者: 苏素速诉酥 | 来源:发表于2017-10-21 23:35 被阅读0次

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

授课老师:侯捷

说明:结合C++面向对象高级编程(上)视频课程和《C++ Primer中文版》(第5版)记录知识点。


第一课 C++编程简介

目标:

培养正规大气的编程习惯;

以良好的方式编写C++ class(Object Based基于对象)class without pointer members / class with pointer members

学习Classes之间的关系(Object Oriented面向对象):继承(inheritance);复合(composition);委托(delegation)

推荐书目:《C++ Primer》(第五版)、《The C++ Programming Language》(Fourth Edition)、《Effective C++》、《THe C++ Standard Library》、《STL源码剖析》

C与C++,关于数据和函数 C++,带指针与不带指针的类(类的两个经典分类)

Objective Based:面对的是单一class的设计;Objective Oriented:面对的是多重classes的设计,classes和classes之间的关系。


第二课 头文件与类的声明

C++ 代码基本形式

文件扩展名不一定是.h或.cpp,也可能是.hpp或其他甚至无扩展名(与编译器平台有关)

Output,C++ vs.C

头文件(Header)中的防卫式声明:

(头文件complex.h)

#ifndef __COMPLEX__

#define __COMPLEX__

……

#endif

(主程序complex-test.h)

#include "complex.h"

complex-test.h

头文件的布局:

头文件的布局 class的声明(declaration)

{

complex c1(2,1);

complex c2;

}

class template(模板)简介

inline(内联)函数

不是所有写的inline函数编译器都能做成inline

函数若在class body内定义完成,便自动成为inline候选人

inline函数

access level(访问级别):

“public” “private” (“protected”例子中不涉及)

public、private段落可任意交错出现。不一定要集中写。



第三课 构造函数

构造函数

构造函数名与类名相同;

无需返回类型,因为构造函数是用来创建对象;

构造函数可以有很多个-overloading(重载);

函数重载:同一作用域内的几个函数名字相同但形参列表不同。

调用这些函数时,编译器会根据传递的实参类型推断想要的是哪个函数。

main函数不能重载。

重载函数(real())

上例中,第一个complex有默认实参,第二个complex无类型,编译器不知道调用哪一个,有冲突。

构造函数放在private中。singleton设计模式

构造函数放在private里,不可在外部调用。



第四课 参数传递与返回值

const member functions(常量成员函数)

参数传递:pass by value  vs. pass by reference

尽量不要传value,C中传指针。

C++中可传引用。

const的引用

把引用绑定到const对象上。

友元:自由取得friend的private成员。相同class的各个objects互为友元。

相同class的各个objects互为友元

第五课 操作符重载与临时对象

头文件布局(本课关注2的部分)

操作符重载-成员函数:this

二元操作符:+=

操作符重载-成员函数

成员函数带隐含参数this(调用者)。上例中c2为this。

return by reference 语法分析

连串使用时若函数设为void,则c2无法向c3传递。

成员函数定义

操作符重载-非成员函数:无this

非成员函数示例

temp object(临时对象) - typename();

临时对象及其语法

typename()用法上相当于int();

上例中complex()使用默认参数。


第六课 复习Complex类的实现过程

复演Complex类的代码编写中思维的流程。

相关文章

网友评论

      本文标题:C++面向对象高级编程(上)-第一周笔记 | Boolan

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