美文网首页
2017-12-26

2017-12-26

作者: 你有黑眼圈 | 来源:发表于2017-12-26 23:22 被阅读0次

                              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(),则表示函数将创建临时对象用来存放结果

相关文章

网友评论

      本文标题:2017-12-26

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