已采纳回答 / 笑侃
这个事情五个字我反正是说不清。.作为一个运算符,两个运算对象分别为变量和变量,->则是地址和对象。所以你要写*p.coor或者p->coor。因为p是一个指针,指针的值是一个地址,然而*p就是p指向的那个变量。
2016-02-20
最赞回答 / 追风恶龙
这个代码不完全 应该外边还有关于coor数组的声明这个语句是一个遍历coor X Y 坐标的FOR循环语句 首先在FOR循环中的执行顺序可以这样理解,首先在FOR循环中声明一个记录循环次数的int变量. 如第一行的 int i=0其次在设置循环的判断条件,在满足条件时进行循环. 如i<3 在最后的i++的意思是在每次循环时将声明变量i的值增加1有了这个循环之后,那么这个2行的循环代码块儿内容就会自上而下的循环3次.如:第一次for循环 判断0<3 所以执行cout<<"coor_x...
2016-02-11
已采纳回答 / 慕前端4039174
如果没有自定义析构函数,系统会自动生成一个默认的析构函数,在删除对象时运行。它并不是没有运行,你是在栈上定义的对象,所以在整段程序结束时系统再会调用析构函数,你只是没有看到而已(此时程序还没运行完),如果用在堆上定义,在释放内存时会看到调用的。
2016-02-03
最新回答 / 爱于万化
当没有自己定义的时候,系统都会自动生成。但是系统生成的构造函数和析构函数是空函数,没有实际作用。定义构造函数可以发给类成员设置默认值等等,同样的,如果我们的类数据成员包含了从堆中申请的内存,类的析构函数就应当加入包含释放堆中内存的语句。或者我们需要程序在对象解散时在屏幕上输出提示信息,也可以在类的析构函数中加入提示信息。
2016-01-19
最新回答 / 大万万
不是第一个,因为this指针不需要你自己显示的进行传递。当你定义类函数显示传递指针的时候,位置随意 指针名字你也可以随意定义(当然除了this,因为已经有了一个this指针了)!网上有资料说它的函数原型中this指针的位置是函数形参的第一个,但是这个我觉得已经超出了我们目前所了解的范围。
2016-01-10
已采纳回答 / 张土土
1、Array arr1 当实例化一个arr1的时候,因为有Array Array::printInfo()存在,系统会创建一个Array类的隐形变量,我们姑且用arr2来表示隐形变量,这时arr1和arr2指向的是不同的地址,有点类似于windows的复制操作。 系统执行arr1.printInfo( return * this)的时候,其实相当于arr1.printInfo( &arr2=*this; return arr2; ),所以arr1.printInfo().setlen(5)就是a...
2016-01-07
最赞回答 / drivermonitor
因为A包含了对象B,也就是说要想“建造”A,必须先有B作为基础,所以,当对象B是对象A的一个数据成员时,先构造B,再构造A。可以利用代码简单跟踪一下:<...code...>
2016-01-01