已采纳回答 / WORLD_CONNECTED
coordinate::coordinate(const coordinate &coor){m_ix=coor.m_ix;m_iy=coor.m_iy;m_pcoor =new int [m_ix*m_iy];cout<<"const coordinate &coor"<<endl;}上面的m_pcoor对应的int数组是空的。只开辟了内存for (int i =0 ;i<m_iy*m_ix;i++){ m_pcoor[i]=coor.m_pcoor[i];...
2017-12-11
已采纳回答 / WORLD_CONNECTED
Coordinate *p2; 这个指针没有实例化 是空指针拓展:Coordinate *p2 = new Coordinate();//在堆上实例化,用p2指针指向这个内存Coordinate p3();//在栈上实例化,得到p3对象Coordinate *p4 = &p3;//p4指针,指向这个p3对象的内存拓展2:使用对象用 .使用指针用 ->p2->m_iYp3.m_iYp4->m_iY
2017-12-11
已采纳回答 / 慕神9155797
第一个问题可能是因为没有默认构造函数吧(只是猜测,建议试一试传入参数可不可以)coor3实例在堆中,coor4实例在栈中,coor5只是赋了指针的值,并不是拷贝构造
2017-12-11
已采纳回答 / 笔墨遥仙
数组当中每一个元素,不管是什么类型都是对象。你传递进去一个1,2,这算什么?最多只能算是一个int类型的数据并且也根本调用不了Cooordinate这个类的构造方法所以,你需要在数组元素当中 = { Coordinate(1,2)}这才是一个对象的元素
2017-12-10
已采纳回答 / 路卍飞
实例化Line对象时,先实例化Coordinate对象点A和点B,实例化点A和点B时,会自动调用构造函数,程序中如果只有构造函数Coordinate(int x,int y)时,调用时必须传递参数,否则会报错。但如果加上默认构造函数Coordinate()时,没有参数传递时就会调用Coordinate()这个函数,就不会报错了。
2017-12-09
已采纳回答 / 与其联想不如华为
当在不同的对象中采用this指针,就已经是在给它赋值了。对象各自的this指针指向各自对象的首地址,所以不同对象的this指针一定指向不同的内存地址。
2017-11-07
已采纳回答 / 书写你背景的空已认证
在面相对象的一类语言中set和get称之为访问器,同时也称为属性,做用是控制成员字段的读写(成员字段一般不公开展示)只有get,就只能读;只有set,就只能写;既有get也有set,就是既能读也能写;用c#来举一个例子来加深对c++的理解吧;class Dog{ private string sex; public Sex //在c++中是两个函数,在c#中是一个函数,实际在编译成中间语言时也是两个函数 { get{return se...
2017-10-31
已采纳回答 / 许山山丶
当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。也就是说new成功的话返回值是一个指针,所以要用指针来接收。可以看一下原文。
2017-09-28