侯捷老师C++基础课程笔记1-2
P1 C++简介
基于对象(Object Based)与面向对象(Object Oriented)的区别
通常“基于对象”使用对象,但无法利用现有的对象模版产生新的对象类型,继而产生新的对象。即“基于对象”只有封装,没有继承和多态的特点。
“面向对象”具有“封装、继承、多态”三大特点,缺一不可。
版本
C++98 是C++1.0版本 于1998年发布
C++11 是C++2.0版本 于2011年发布,增添了许多新的关键字
P2 头文件与类的声明
#include<.h>和#include".h"的区别
Header头文件中的“防卫式声明”
filename.h
1.#ifndef _FILENAME_
2.#define _FILENAME_
......
#endif
解释:#ifndef依赖于宏定义名,当宏已经定义时,#endif之前的代码会被忽略,保证FILENAME只被执行一次。
防卫式声明作用:防止一个头文件被包含多次,而导致的重复定义。
另外,#pragma也可以达到类似效果,其保证同一个文件不会被编译多次,但两个不同文件内容相同时,仍会出错。