课程
/后端开发
/C++
/C++远征之封装篇(下)
之前视频中就是这样写啊,为什么这样写不对
2018-11-11
源自:C++远征之封装篇(下) 4-3
正在回答
前面题目帮你定义的是有参构造函数,你这里定义的是无参构造函数,系统不会自动定义无参构造函数,需要自己定义,系统找不到无参构造函数,所以报错;解决办法:你把参数写进括号里,例如Coordinate(3,5),下面不要p->iX=3; 就会自动调用有参构造函数,或者把Coordinate()的括号去掉;
在括号里初始化数据成员怎么样
我实在括号里初始化的
你这里面没有传参数,你的构造函数在初始化的时候需要传入参数。
你在你的class里面写一个默认构造函数就可以了,本身函数有带参构造,你用的却是默认的,而且没写上去,系统不会给你分配的,所以会报错
Coordinate()里面应该有参数吧
例子中给了拷贝构造函数了,所以系统不会自动生成无参的拷贝构造函数,你自己得手动加上去应该就好了。
你的Coordinate类的定义呢?贴出来看看。这样写确实没问题,前提是Coordinate类有默认的构造函数。
可能是由于Coordinate类的构造函数不是构造函数导致的。
慕UI610320
南橘xx 提问者 回复 慕UI610320
举报
封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通