c++中的动态内存分配
优点:使用更加的方便,解决了c中有很时候没有库文件时不能申请堆内存的情况
使用
- c++中是通过new关键字来进行内存空间的申请的
- c++中动态内存是基于类型进行的
- delete关键字用于释放
- new在申请的时候可以进行初始化(malloc不具备)
int *p =new int(10); //申请并初始化位10
int *pa =new int [10];//申请一个数组
delete p;
delete []p; //销毁的时候要注意
注 在申请空间的时候,因为他是动态内存申请,所以这里是至少申请了40个空间
注 在对类空间的申请上,malloc和free不会调用类的析构函数和构造函数,而new和delete则会调用析构函数和构造函数
命名空间
来源和优点:在c语言的中,我们都知道我们一般都不会去使用全局变量的,因为,c语言只有一个全局作用域,在一个很大的工程中,很多错误都是因为全局变量的使用导致命名冲突和数据错误,所以c++中推出命名空间很好的解决了这个问题
使用
- 命名空间将全局作用域分成了不同的部分
- 不同的命名空间标识符可以同名而不发生冲突
- 命名空间可以相互嵌套
- 全局作用域也叫默认命名空间
命名空间的使用
namespace name
{
int i=0;
}
using namespace name; //使用整个命名空间
using name::i //使用命名空间中的变量
::i //使用默认命名空间中的变量