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


              这是我读《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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值