C++ new与默认构造函数
接下来,我们准备为大家介绍"new与默认构造函数"。
经过前面的学习,我们可以知道,当new操作时,如果类名的后面没有跟参数的时候,new操作会自动调用类中的"默认构造函数",但是,如果,类中没有定义默认构造函数,同时,类中却定以了另外的带参构造函数时,那么,会出现什么情况呢?
(1)如果,类中没有定义默认构造函数,但定义了另外的带参构造函数,这样,另外的带参构造函数会覆盖默认构造函数。
(2)当new操作时,如果类名的后面没有跟参数,同时,类中没有定义默认构造函数,只有带参构造函数时,由于带参构造函数的存在,系统不会再自动提供默认构造函数,从而,导至new操作操作找不到默认构造函数而出错。
接下来,我们就结合例子来作进一步的学习
例子1:
Class DongWu //动物类
{
public:
int head; //头
int body; //身
int Leg; //腿
int x; //移动的距离
char *name; //名字
DongWu( int num ) //带参构造函数
{
head = 1;
body = 1;
Leg = 4;
Tail = 1;
name = new char[num]; //通过new分配字符数组的内存空间,并返回内存空间的起始地址给
name
}
~DongWu()
{
delete name; //释放name所指向的内存空间
}
void MX(); //移动的方法
};
void main()
{
DongWu *Cow2; //定义了指针对象Cow2
Cow2 = new DongWu; //错误,首先,调用默认构造函数,但类中没有定义默认构造函数,
所以报错。
Cow2 = new DongWu(10); //正确,首先,根据参数找到带参构造函数
Cow2 = new DongWu(10,3); //错误,首先,根据参数找不到带参构造函数,类中只有一个带
有1个参数的构造函数,所以,报错。
}
通过上面的学习,相信大家对new与默认构造函数有了一个初步了解,但是,如何灵活地运用这个知识点呢?那么,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对该知识点的理解和运用,以及“尽快进入到编程的状态”。
要达到灵活运用,是需要通过不停地反复训练才可以做到,所以,不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)