2017-12-26

                              C++面向对象程序设计 课程笔记(一)

一、C++编程简介

1.课程目标

以良好的方式编写C++ class(代码的每一个单元)

两种class

(1)class without pointer members —— Complex    不含指针  (基于对象 object based)

(2)class with pointer members —— String    含指针  (面向对象 object oriented)

学习Class之间的关系

(1)继承(inheritance)

(2)复合(composition)

(3)委托(delegation)

2.C++的历史

new C→C with Class→C++

3.推荐书籍资料

语法相关:《C++ primer》、《C++ programming language》、《Effective C++》

标准库相关:《The C++ Standard Library》、《STL源码剖析》

4.Classes的两个经典分类

(1)Object Based:面对单一class的设计

(2)Object Oriented:面对多重classes的设计,classes和classes之间的关系

二、头文件与类的声明

1.C++代码的基本形式

(1).h(header files)+.cpp+.h(header files)

header files——classes declaration  类的声明、标准库

.cpp——ex.main()

(2)引用头文件

引用标准库——# include<iostream>

引用类——# include"complex.h"

2.Header(头文件)中的防卫声明


3.头文件的布局


三、构造函数

1.构造函数的特性

complex(double r=0, double i=0)

:re(r),im(i)    ——初值列、初始列

{}

re(r)、im(i)将r、i分别设入re()、im(),在数值初始化阶段就已经将数据放入变量

2.函数重载

(1)同名函数可以存在多个

(2)函数重载在class中普遍存在

(3)若构造函数已有默认值,则不能写入同名同功能无默认值的函数

3.singleton

可以将构造函数写入private

四、参数传递与返回值

1.double real() const{return re;}

加入const使函数不会改变数据内容

若不加const可能在调用后改变数据(编译通不过)

2.参数传递

(1)pass by value  传值

将数据整包传输,效率低,尽量不用

(2)pass by reference  引用  complex&

传输地址,只需传输4个字节,效率高,参数传递最好传引用

3.返回值传递也尽量return by reference

4.不可以传引用、返回引用的情况

当函数结束本地变量会消亡时,不可传引用、返回引用

五、操作符重载与临时对象

1.操作符重载时的隐藏参数this

c2 +=c1    则this指c2,即this指向函数的调用者

2._doapl

为赋值加法运算符(+=)的函数

3.若函数形式为typename(),则表示函数将创建临时对象用来存放结果


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 1.c++编程简介 所需基础知识 . 某种编程语言: 变量、类型、作用域、循环、流程控制 . 编译、连结建立可执行...
    xiaoxii阅读 743评论 0 0
  • GeekBand C++ Week1 Notes A.OOP-面向对象编程 1基础:C语言 -变量variable...
    古来征战几人回阅读 544评论 0 0
  • 君生我未生,我生君已老 一眼万年时,奈何千里遥 流连眉梢处,顾盼有星光 抬眸青涩相,犹记含羞笑 今昔非何昔,举止已...
    冬日初阳阅读 307评论 0 3
  • 各位家长晚上好![玫瑰][玫瑰][玫瑰] 本周学习内容: 绕口令: 数枣儿 出东门儿,过大桥, 大桥底下一树枣儿,...
    淡定淡定0阅读 534评论 0 0