侯捷老师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也可以达到类似效果,其保证同一个文件不会被编译多次,但两个不同文件内容相同时,仍会出错。 

原文地址:https://www.cnblogs.com/garychen97/p/13529500.html