概述:编程
C++语言很是的复杂,有不少种编程范式:面向对象范式,泛型编程范式,元编程范式等。之因此复杂是由于C++语言所描述的真是世界是复杂的。C++语言经历了一系列的发展,总的原则是要让编程方便而效率又不会损失太多。函数
本系列课程主要学习面向对象编程,也就是使用C++语言中的面向对象范式。学习
本周主要学习C++中最简单的类的实现:不带指针的类的实现。这个其实和面向对象没什么关系,主要仍是强调封装,把数据和操做数据的函数放在一块儿,这个称为“基于对象”的设计,并且仍是“基于对象”设计中最简单的带指针的类的实现。this
其实,带不带指针不是本质,本质是类的全部成员都具备合适的内存管理行为(由于都是值类型,class默认为值类型生成合适的内存管理代码)。设计
细节:指针
1. 头文件由C到C++的变化如 #include <stdio.h> ---> #include <cstdio>对象
2. 头文件中的防卫式声明---同C语言内存
3. inline函数可实如今类的定义中(无需指定inline),或在.h文件中实如今类外(必须指定inline).inline只是一种请求,复杂的函数的这种请求基本不可能成功。资源
4. class的访问权限:private,protected,public编译器
5. 函数的参数能用引用就必须用引用,能加const就必须加const
6. 友元函数和友元类能够直接访问其朋友类的private域
7. this指针即指向调用函数对象的指针,其实和C无本质区别,如C++中Obj.some_func(param)被编译器修改成C中对应的的 some_func( &pObj, param );其中&pObj就是this指针的实参
8. 三类很是重要的函数:
a) 构造函数(对象如何产生)
b) 析构函数(对象如何消亡)
c) 复制控制类函数( 拷贝构造函数和operator=() )描述对象如何被复制
本周的类不涉及资源管理,并是值类型,因此只须要实现构造函数,其他两类函数,C++语言默认生成的就足够好了。
9. 运算符重载
这个要谨慎使用,有无数的坑等着你,最好能不使用,而直接使用普通的函数。不过,对于一些类,人们经常用运算符来操做它们,也可使用一下运算符重载,当心,当心必定要当心!