《C++高级编程》读书笔记(一)

来源:互联网 发布:云狐网络 编辑:程序博客网 时间:2024/05/14 23:35


              这是我读《C++高级编程(第2版)》做的读书笔记,首先从C++最基本的语法开始。

              名称空间

             名称空间是用来处理不同代码段之间的名称冲突问题。假如你决定使用第三方库,其中也有一个foo()函数,编译器无法判断出你的代码要使用哪个版本的foo()函数,库函数的名称无法改变,而改变自己的函数名称又会非常痛苦,在此情况下可以使用名称空间,从而指定定义名称的环境,如:

          

namespace mycode{      void foo();}


 将你的foo()函数放到名称空间mycode 后,这个函数就与第三方提供的函数区分开来。

为了调用名称空间的foo()函数需要使用::在名称空间之前给出名称空间,::被称作作用域解析运算符:

            

mycode::foo();


也可以在源文件只能中使用

using namespace mycode;


               堆栈和堆

                C++程序中的内存分为两个部分——堆栈和堆。

                堆栈就像一副扑克牌,当前顶部的牌代表程序当前的作用域,通常是当前正在执行的函数,当前函数中声明的所有变量将占有顶部的堆栈帧的内存。编译器在编译时必须能够判断每个堆栈帧的大小,这是由堆栈的运行方式决定的。由于堆栈帧的大小被预先确定,因此不能声明大小可变的数组。

                数组必须这样声明:

int myarray[8];

               堆是与当前函数或堆栈帧完全没有关系的内存区域。如果想要在函数调用结束之后依然保存声明的变量,可以将变量放到堆中。

              动态数组必须这样声明:

int arraysize =8;int  * myarray=new int[arraysize];delete [] myarray;



 

0 0
原创粉丝点击