C++ new
在接下来的学习内容中,需要大家有C语言的“指针”基础才可以学习,如果没有C语言的“指针”基础请通过右方目录中,顶部的“C教程”找到“C 指针”先进行学习。
接下来,我们准备为大家介绍new操作。
(1)new操作可以让我们的程序在运行的过程中动态地分配内存空间,并返回一个指针。
(2)当我们在C++中使用new操作时,我们将要使用“指针对象”去保存它的返回值。
new语法格式如下:
new 类名(或C数据类型,或结构体);
语法格式分析:
(1)以new开头,格式要求
(2)输入“类名”或“C的数据类型、结构体”,这样,它就会根据“类名”或“数据类型”或“结构体”,到内存
中分配一块大小合适的存储空间,并返回成功分配以后的内存空间起始地址。
(3)如果由于内存不足等原因无法分配空间,则new会返回一个空指针NULL。
(4)new调用时,如果是对类进行操作,它会根据参数找到要调用的构造函数。
接下来,我们再来看看指针对象的定义格式
指针对象的定义格式如下:
类名 *对象名
格式分析:
(1)类名
(2)*,星号,格式要求,不能省略。
(3)对象名,该对象用于存放new操作所分配的内存空间起始地址。
接下来,我们就结合例子来作进一步的学习
例子1:
Class DongWu //动物类
{
public:
int head; //头
int body; //身
int Leg; //腿
int x; //移动的距离
DongWu() //构造函数 new操作时如果没有参数,则调用默认的构造函数
{
head = 1;
body = 1;
Leg = 4;
Tail = 1;
}
DongWu(int a,int b) //构造函数 new操作时会根据参数找到对应的构造函数来调用
{
head = a;
body = 1;
Leg = b;
Tail = 1;
}
void MX(); //移动的方法
};
void Dongwu::MX()
{
x=x+1; //MX是类中的方法,可以防问私有属性x
body = 1; //MX是类中的方法,可以防问公有属性body
}
DongWu *Cow1; //定义一只牛的指针对象Cow1
Cow1 = new DongWu; //通过new根据DongWu类分配内存空间,并返回所分配的内存空间起始地址,保
存于“指针对象”Cow1中。
new操作时调用默认构造函数。
DongWu *Cow2; //定义一只牛的指针对象Cow2
Cow2 = new DongWu(1,4); //通过new根据DongWu类分配内存空间,并返回所分配的内存空间
起始地址,保存于“指针对象”Cow2中。
new操作时会根据参数找到对应的构造函数来调用。
float *p = new float(1.5); //通过new分配一个浮点型的内存空间,并在所分配的内存空间中存储了浮点数
1.5,然后,将所分配的内存空间起始地址保存于“指针变量”p中。
int *pi = new int[10]; //通过new分配一个整型数组的内存空间,然后,将所分配的内存空间起始地址
保存于“指针变量”pi中。
通过上面的学习,相信大家对new操作有了一个初步了解,但是,如何灵活地运用这个知识点呢?那么,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对该知识点的理解和运用,以及“尽快进入到编程的状态”。
要达到灵活运用,是需要通过不停地反复训练才可以做到,所以,不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)