检查这段代码的错误#include<match> #include <iostream> using namespace std; class Circle{ private: int x,y; int radius; public: Circle(int x,int radius); double distance(const Circle &c); }; Circle::Circle(int x,int y,int radius):x(x),y(y),radius(radius){ } double Circle::distance(const Circle &c){ double dis=sqrt((x-c.x)*(x-c.x)+(y-c.y)*(y-c)); return dis; } int main(int argc, char** argv) { Circle c1(0,0,1),c2(1,1,1); cout<<"c1和c2的距离"<<endl; return 0; }
时间: 2024-02-13 21:01:26 浏览: 123
这段代码有以下两个错误:
1. 包含了错误的头文件,应该包含 <cmath> 而不是 <match>,因为在代码中使用了 sqrt 函数。
2. Circle 类的构造函数参数列表中只给出了两个参数,但是定义时需要三个参数,应该将构造函数的定义改为:
```
Circle::Circle(int x,int y,int radius)
:x(x),y(y),radius(radius){ }
```
修改后的代码如下:
```
#include <iostream>
#include <cmath>
using namespace std;
class Circle{
private:
int x,y;
int radius;
public:
Circle(int x,int y,int radius);
double distance(const Circle &c);
};
Circle::Circle(int x,int y,int radius)
:x(x),y(y),radius(radius){ }
double Circle::distance(const Circle &c){
double dis=sqrt((x-c.x)*(x-c.x)+(y-c.y)*(y-c.y));
return dis;
}
int main(int argc, char** argv) {
Circle c1(0,0,1),c2(1,1,1);
cout<<"c1和c2的距离"<<endl;
return 0;
}
```
阅读全文