已采纳回答 / AAnonymous
p1 是一个对象, 分配在栈上p2是一个指针,指向p1这个对象,即p2指向p1在栈上的地址(并没有创建新的对象)Coordinate *p2 = new Coordinate(); 才创建了新的对象,在堆上
2015-08-31
最赞回答 / 走进科学
1.如果有多个成员数据,构造函数可以一次给多个成员数据设定初始值,set函数一般都是一个成员数据对应一个set函数.一次只能设定一个.2.构造函数只能设定初始值,如果设定了初始值之后,又想要再更改这个值.那么就只能用set了.
2015-08-25
已采纳回答 / onemoo
你的Coordinate类没有定义默认构造函数,且因为你已经定义了一个构造函数,故编译器也不会为你自动生成一个默认构造函数。可是在main函数中,第49行处你定义了一个Coordinate数组,这会对每一个元素进行初始化,由于没有默认构造函数,所以没有匹配的调用,编译失败。再有,假设你提供了默认构造函数,那么第51和53行就错误了,因为不能对已经初始化的对象再次调用构造函数。
2015-08-08
已采纳回答 / IT饱
常成员函数:如果一个成员函数对类中数据成员只作访问而不作直接或间接的修改,则最好将此函数设置为常成员函数,以明确表示它对数据成员的保护性。常对象:必须进行初始化,常对象只能...
2015-07-25
已采纳回答 / 攻城small狮
可能你在Line.h和main.cpp里都包含了Coordinate.h,试试去掉main.cpp里的,只保留Line.h里的 我就是这种情况,去掉就好了
2015-07-12