报错83 1 C:\Users\王淑婧\Desktop\c.5_4.cpp [Note] candidate expects 1 argument, 0 provided#include<iostream> #include<iomanip> using namespace std; class point{ private: int x,y; public: point(int xx,int yy){ x=xx;y=yy; } int getx(){return x;} int gety(){return y;} ~point(){ cout<<"Point xigou "<<x<<" "<<y<<endl; } point(point &p){ x=p.x; y=p.y; } }; class Ellipse{ private: point a,b; public: ~Ellipse(){ cout<<"Ellipse xigou "<<b.getx()<<" "<<b.gety()<<endl; } Ellipse(int x1,int x2,int x3,int x4):a(x1,x2),b(x3,x4) { cout<<"gouzao 1 "<<x1<<" "<<x2<<" "<<x3<<" "<<x4<<endl; } Ellipse(point &p1,point &p2){ a=p1;b=p2; cout<<"gouzao 2 "<<p1.getx()<<" "<<p1.gety()<<" "<<p2.getx()<<" "<<p2.gety()<<endl; } void show(){cout<<a.getx()<<" "<<a.gety()<<" "<<b.getx()<<" "<<b.gety()<<endl; } int Area(){ return 3.14*a.gety()*b.getx(); } }; int main(){ int a,b,c,d; cin>>a>>b>>c>>d; cin>>a>>b;cin>>c>>d; point p1(a,b),p2(c,d); Ellipse e1(a,b,c,d); e1.show(); Ellipse e2(p1,p2); e2.show(); cout<<fixed<<setprecision(4)<<e1.Area()<<endl; cout<<fixed<<setprecision(3)<<e2.Area()<<endl; return 0; }
时间: 2023-06-26 18:04:06 浏览: 154
这个代码报错的原因是在创建 Ellipse 类对象时,构造函数需要传入参数,但是你在创建 Ellipse 类对象的时候没有传入参数,导致编译器报错。你可以按照下面的方式修改代码:
1. 在创建 Ellipse 类对象时,传入构造函数所需的参数。
2. 在创建 Ellipse 类对象时,传入 point 类对象,且将参数改为引用类型。
修改后的代码如下:
相关问题
你给出的上面的代码有这样的错误main.cpp: In constructor 'Rect::Rect(Point, Point)': main.cpp:20:32: error: no matching function for call to 'Point::Point()' Rect(Point tl_, Point br_) { ^ main.cpp:20:32: note: candidates are: main.cpp:11:5: note: Point::Point(int, int) Point(int x_, int y_) { ^ main.cpp:11:5: note: candidate expects 2 arguments, 0 provided main.cpp:8:7: note: constexpr Point::Point(const Point&) class Point { ^ main.cpp:8:7: note: candidate expects 1 argument, 0 provided main.cpp:8:7: note: constexpr Point::Point(Point&&) main.cpp:8:7: note: candidate expects 1 argument, 0 provided main.cpp:20:32: error: no matching function for call to 'Point::Point()' Rect(Point tl_, Point br_) { ^ main.cpp:20:32: note: candidates are: main.cpp:11:5: note: Point::Point(int, int) Point(int x_, int y_) { ^ main.cpp:11:5: note: candidate expects 2 arguments, 0 provided main.cpp:8:7: note: constexpr Point::Point(const Point&) class Point { ^ main.cpp:8:7: note: candidate expects 1 argument, 0 provided main.cpp:8:7: note: constexpr Point::Point(Point&&) main.cpp:8:7: note: candidate expects 1 argument, 0 provided 详细评判结果 »
这个错误是因为在 Rect 类的构造函数中调用了 Point 类的构造函数,但是没有提供任何参数。根据错误信息,Point 类有三个候选构造函数,但是都需要至少一个参数。
你需要在创建 Rect 对象时为 Point 对象提供所需的参数。例如:
```
Point tl(0, 0); // 创建左上角点
Point br(10, 10); // 创建右下角点
Rect rect(tl, br); // 创建矩形对象
```
这样就可以避免上述错误。
错误: 问题 1: package bind9.16-utils-32:9.16.23-0.12.el8.x86_64 conflicts with bind-utils provided by bind-utils-32:9.11.36-8.el8.x86_64 - cannot install the best candidate for the job 问题 2: package bind9.16-32:9.16.23-0.12.el8.x86_64 conflicts with bind provided by bind-32:9.11.36-8.el8.x86_64 - cannot install the best candidate for the job 问题 3: package bind9.16-dnssec-utils-32:9.16.23-0.12.el8.x86_64 conflicts with bind-pkcs11-utils provided by bind-pkcs11-utils-32:9.11.36-8.el8.x86_64 - cannot install the best candidate for the job 问题 4: package bind9.16-32:9.16.23-0.12.el8.x86_64 conflicts with bind provided by bind-32:9.11.36-8.el8.x86_64 - package bind9.16-chroot-32:9.16.23-0.12.el8.x86_64 requires bind9.16(x86-64) = 32:9.16.23-0.12.el8, but none of the providers can be installed - package bind-chroot-32:9.11.36-8.el8.x86_64 requires bind(x86-64) = 32:9.11.36-8.el8, but none of the providers can be installed - cannot install the best candidate for the job (尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)
这个错误提示表示你正在尝试安装的软件包存在依赖冲突,无法安装。具体来说,是因为你尝试安装的bind9.16系列的软件包和系统中已有的bind-utils和bind-pkcs11-utils软件包存在冲突。
你可以尝试使用以下命令来解决问题:
```
yum install bind-utils-32 bind-pkcs11-utils-32 --skip-broken
```
这将会安装bind-utils-32和bind-pkcs11-utils-32软件包,并跳过无法安装的bind9.16系列的软件包。如果你需要安装bind9.16系列的软件包,可以尝试添加"--allowerasing"参数来替换冲突的软件包,或者使用"--nobest"来不只使用软件包的最佳候选。但是请注意,这可能会导致系统依赖性出现问题,因此需要谨慎操作。
阅读全文