美文网首页
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