C++面向对象高级编程(上) Week 1 (Boolan) b
1-C++编程简介
Object Based——以良好的方式编写-Class
Object Oriented——Class之间的关系-继承、符合、委托
参考书目:
C++ Primer Fifth Edition
The C++ Programming Language
Effective C++
The C++ Standard Library
STL 源码剖析
2-头文件与类的声明
C与C++的区别
Header的布局
防御性声明:
#ifndef __HEAD_H_ //防止多次包含同样的头文件
#define __HEAD_H_
#endif //回应前方的 #ifndef
前置声明
类声明class xxx {};
类定义xxx::function
模板 template<typename T>
3-构造函数
1、inline:编译时直接展开,效率较高
!!!inline非强制,编译器会自己判断
内联:
函数在类内定义时,自动转成内联的候选人。
inline只是向编译器发出的一个请求,编译器可以选择忽略这个请求。
一般来说,inline用于优化规模小,流程直接,频繁调用的函数,而且很多编译器并不支持内联嵌套函数。内联函数主要是抵消了函数调用时的开销,但是如果将内联函数全部展开的开销大于函数调用的开销,编译器便会自动忽略内联的请求。
内联函数通常定义在头文件中。
2、access level:public、private、protected、friend
封装:
定义在public说明符后的成员在整个程序内可以被访问,public成员定义类的接口。
定义在private说明符号后面的成员可以被类的成员函数访问,但是不能被使用该类的代码访问,private部分封装了类的实现细节。
一个类可以包含0个或者多个访问说明符,而且对于某个访问说明符能出现多少次也没有严格限定。每个访问说明符指定了接下来的成员的访问级别,其有效范围直到出现下一个访问说明符或者到达类的结尾为止。
一个类可以用struct或者class进行定义,区别便是struct的默认访问权限为public,而class的默认访问权限为private。
友元:
类可以允许其他类或者函数访问它的非共有成员,方法是令其他类或者函数称为它的友元。如果想把一个函数作为它的友元,只需要增加一条以friend关键字开始的函数声明语句即可。
友元函数如果定义在类的内部,则其是隐式内联的,相同种类的类互为友元。
3、默认实参
4、初始列表xxx xxx() : xx(x),yy(y)
5、overloading
重载的条件:
1、函数有不同参数。
2、函数有不同参数类型。
4-参数传递与返回值
const
传引用传值的区别:
什么时候用传引用,什么时候传值
5-操作符重载与临时对象
1、操作符重载(成员函数与非成员函数)
比较全面的 C++ 操作符重载 (operator)
2、temp object
6-复习Complex类的实现过程