广告
淘宝内部优惠券
当前位置: 开发异常方案库» C/C++ » C++继承出现bug

C++继承出现bug

开发异常方案库  收集整理于:2020-05-27 17:37:00  浏览:66次

------网友观点--------------------
你这发生了什么问题也不描述一下

------网友观点--------------------
我猜应该是链接出现问题,但是我找不到,

------网友观点--------------------
是程序都没法生成吗还是运行过程中出现问题

------网友观点--------------------
程序没法生成报错在第一张图

------网友观点--------------------
复制下源代码,懒得打字。。。

------网友观点--------------------
我把文件发给你吧加QQ?

------网友观点--------------------
算了我直接发上面

------网友观点--------------------
//main.cpp #include"circle.h" using namespace std; int main(){ Circle c1(3.4,5.6,8); cout<<c1; c1.setPoint(3.9,3.1); c1.setradius(9); cout<<c1; return 0; }  //point.h #include<iostream> using namespace std; class Point{ public: Point(float x=0,float y=0); void setPoint(float,float); float getX() const{ return x; } float getY() const{ return y; } friend ostream& operator<<(ostream &,const Point&); protected: float x,y; }; //point.cpp #include"point.h" Point::Point(float a,float b){ x=a; y=b; } void Point::setPoint(float a,float b){ x=a; y=b; } ostream& operator <<(ostream &output, const Point&p){ output<<"["<<p.x<<","<<p.y<<"]"<<endl; return output; } //circle.h #include"point.h" class Circle:public Point{ public: Circle(float x=0,float y=0,float z=0); void setradius(float); float getradius() const; float area() const; friend ostream&operator<<(ostream&,const Circle&); protected: float radius; }; //circle.cpp #include"circle.h" Circle::Circle(float a,float b,float c):Point(a,b),radius(c){ } void Circle::setradius(float r){ radius=r; } float Circle::getradius() const{ return radius; } float Circle::area()const{ return 3.14159*radius*radius; } ostream& operator<<(ostream& output,Circle &c){ output<<"["<<c.x<<","<<c.y<<"]"<<"r="<<c.radius<<endl; return output; }

------网友观点--------------------
我觉得你的makefile有问题? 我对makiefile不是太了解。大致猜一下 main.o 不仅依赖于main.cpp,而且依赖于circle.o

------网友观点--------------------
什么意思不明白

------网友观点--------------------
引用 10 楼 qq_40451076的回复:
什么意思不明白
如果你不明白,大概你也不太会用cmake,建议还是用virtual stdio,只要你把各个文件添加到工程,它自动会给你编译。

------网友观点--------------------
你这个保护成员只有自己和派生类才可访问,你这个重载操作符没有访问权限

------网友观点--------------------
我声明为friend了

------网友观点--------------------
改成public 还有问题吗

------网友观点--------------------
引用 14 楼 qq_40451076 的回复:
改成public 还有问题吗
声明为友元吧,public破坏封装性

------网友观点--------------------
我原来就是声明为友元

------网友观点--------------------
引用 16 楼 qq_40451076 的回复:
我原来就是声明为友元
那你改为public是否还有问题

------网友观点--------------------
还有问题………

------网友观点--------------------
错误截图看下

------网友观点--------------------
函数签名不一致,改成一样就好了 friend ostream&operator<<(ostream&,const Circle&); --------------------------------------------------------------------------------------- ostream& operator<<(ostream& output,Circle &c){ output<<"["<<c.x<<","<<c.y<<"]"<<"r="<<c.radius<<endl; return output; }

------网友观点--------------------
哦哦好了谢谢

------网友观点--------------------

------网友观点--------------------
突然发现自己技术还是不成熟。。。。

------网友观点--------------------
最好能把问题说清楚,这样方便大家帮你看,

------网友观点--------------------
学习学习一下

------网友观点--------------------
我没下载下来就扣积分了,大家有这种情况吗

------网友观点--------------------
改成public 還有問題嗎

------网友观点--------------------
报错看一下。。。

------网友观点--------------------
我来学习一下。。。

------网友观点--------------------
哇哦 来学习一下

------网友观点--------------------
努力学习c++中!

------网友观点--------------------
好难啊,这个,想要下载积分

------网友观点--------------------
哇哦 来学习一下  努力学习中!

------网友观点--------------------
我感觉你要建工程
发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
软件开发 程序错误 异常 ybaby.netCopyright © 2020-2026  ybaby 版权所有  桂ICP备17004385号-2 网站地图