最赞回答 / 慕雪908267
这里创建的*P是一个对象,所以销毁的时候不用[];当创建的是一个对象数组的话就需要[];这个是内存管理的内容,即申请一个内存,销毁的时候是delete p;申请的是内存块的话就要delete []p
2019-01-14
已采纳回答 / qq_慕圣7592846
p是指针,在执行完for的最后一次操作之后,p指向了申请的内存的之前一个位置,也就是p[-1],如果不p++,归还的内存是从p[-1]开始的,是错误的
2018-11-23
已采纳回答 / 宝慕林0048322
//确定方向 如果方向上有墙就逆时针转一下 void turnBack(string map[X][Y], Human *man) { static int cache = 0; if (man->direction == N) { if (map[man->x - 1][man->y] == WALL) { man->direction = W; cache++; turnBack(map, man); } cache = 0; return...
2018-11-22
已采纳回答 / 阿臣儿
这个Array是一个我们自定义的类,它和int其实差不多,只不过int是系统给我们定义好了的,我们直接去使用就好了,声名一个函数的时候最前面的是返回的类型(无返回值用void),比如视频中的int getlen(),返回的是一个int类型的值,而Array printInfo()返回的是一个Array类型的值(临时对象),所以后面老师可以继续使用 .(点)运算符访问这个临时对象的其他成员函数,不知道楼主能不能明白
2018-09-28
已采纳回答 / 知否bot丶
常对象只能调用常成员函数。 m_coorA为常对象,而setA 为普通成员函数,m_coorA.setA(T* this,int x,int y)参数 T* this指的当前对象有可读可写权限,而m_coorA 只有可读权限。肯定是不可以的。
2018-08-22
已采纳回答 / 慕数据2169645
声明数组初始化过程中,会调用形参类型相匹配的构造函数,如果没有指定数组元素的初始值,就会调用默认构造函数。你在声明的时候没有指定初始值,所以需要调用默认构造函数。如果不调用默认构造函数的话,就需要设置初始值,就是我上一条回复你的那句。
2018-08-07