第一篇C++概述
1、#include <some_file.h>
#include "my_file.h"
如果文件名用尖括号< 和> 括起来表明这个文件是一个工程或标准头文件;如果文件名用一对引号括起来则表明该文件是用户提供的头文件查找该
文件时将从当前文件目录开始
2、条件指示符可防止这种头文件的重复处理例如
#ifndef BOOKSTORE_H
#define BOOKSTORE_H
/* Bookstore.h 的内容 */
#endif
3、assert()是C 语台标准库中提供的一个通用预处理器宏在代码中常利用assert()来判断一
个必需的前提条件以便程序能够正确执行。
必须包含与之相关联的头文件
#include <assert.h>
下面是一个简单的使用示例
assert( filename != 0 );
4、使用头文件的C 名字或者C++名字两种情况下头文件的#include 预处理器指示符的
效果也会不同下面的#include 指示符
#include <cassert>
将cassert 的内容被读入到我们的文本文件中但是由于所有的C++库名字是在名字空间
std 中被定义的因而在我们的程序文本文件中它们是不可见的除非用下面的using 指示
符显式地使其可见
using namespace std;
使用C 头文件的#include 指示符
#include <assert.h>
5、静态与动态内存分配的两个主要区别是
1.静态对象是有名字的变量我们直接对其进行操作而动态对象是没有名字的变量
我们通过指针间接地对它进行操作稍后我们会看到一个例子
2.静态对象的分配与释放由编译器自动处理程序员需要理解这一点但不需要做任何
事情相反动态对象的分配与释放必须由程序员显式地管理相对来说比较容易出错
它通过new 和delete 两个表达式来完成。
int *pint = new int( 1024 );
int *pia = new int[ 4 ];
delete pint;
delete [] pia;
内存泄漏(memory leak 的问题内存泄漏是指一块动态分配的内存我们不再拥有指向这
块内存的指针因此我们没有办法将它返还给程序供以后重新使用现在大多数系统提供
识别内存泄漏的工具可以向系统管理员咨询。)