定义:
//构造一个内部类 class A { public: class B { void fun(const A& a) {//} }; private: }; int main () { A::B b; //构造内部类 b.fun(A()); return 0; }
注:内部类可以看做外部类的友元类,内部类可以通过外部类的对象参数访问外部类的所有成员;但外部类不是内部类的友元类。
特性:
定义: C++通过类,将一个对象的属性与行为结合在一起,就是将属于该对象的所有东西打包在一起;通过访问限定符有选择性的将部分功能开放与其他对象进行交互(通俗理解为:成员变量和成员函数都放在类里面,想给外部访问的就定位公有,否则就定为私有或保护,这本质上是一种比较好的管理方式)。
虚拟内存分段展示如下:
注:
我们先讨论C语言中malloc、calloc、realloc三种动态开辟内存方法:
由于C语言内存管理方式在C++中有些地方使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。
//申请数组 //malloc申请5个类型为int的数组 int* p1 = (int*) malloc(sizeof(int)*5); free(p1); //new申请5个类型为int的数组 int* p2 = new int [5]; delete[] p2;
//申请单个对象 //malloc申请单个int对象 int* p1 = (int*)malloc(sizeof(int)); free(p1); //new申请单个int对象 int* p2 = new int; delete int;
malloc和new的异同:
小结: