#include<iostream> #include<cstring> using namespace std; class Swap{ public: int n1,n2; double d1,d2; string a1,a2; swap(int x1,int x2) { n1=x2; n2=x1; } swap(double x1,double x2) { d1=x2; d2=x1; } swap(string x1,string x2) { a1=x2; a2=x1; } }; int main() { Swap a; cin>>a.n1>>a.n2; a.swap(a.n1,a.n2); cout<<a.n1<<","<<a.n2<<endl; cin>>a.d1>>a.d2; a.swap(a.d1,a.d2); cout<<a.d1<<","<<a.d2<<endl; cin>>a.a1>>a.a2; a.swap(a.a1,a.a2); cout<<a.a1<<","<<a.a2<<endl; return 0; } 哪错了
时间: 2023-11-27 13:49:44 浏览: 141
#include <iostream>
程序中的类名应该是 `Swap` 而不是 `swap`,因为 `swap` 是 C++ 标准库中的一个函数名,如果使用相同的名称作为类名可能会导致编译错误。同时,类中的函数名和类名也应该一致,因此 `swap` 函数应该改为 `Swap`。修改后的代码如下所示:
```c++
#include<iostream>
#include<cstring>
using namespace std;
class Swap{
public:
int n1,n2;
double d1,d2;
string a1,a2;
Swap(int x1,int x2)
{
n1=x2;
n2=x1;
}
Swap(double x1,double x2)
{
d1=x2;
d2=x1;
}
Swap(string x1,string x2)
{
a1=x2;
a2=x1;
}
};
int main()
{
Swap a;
cin>>a.n1>>a.n2;
a.Swap(a.n1,a.n2);
cout<<a.n1<<","<<a.n2<<endl;
cin>>a.d1>>a.d2;
a.Swap(a.d1,a.d2);
cout<<a.d1<<","<<a.d2<<endl;
cin>>a.a1>>a.a2;
a.Swap(a.a1,a.a2);
cout<<a.a1<<","<<a.a2<<endl;
return 0;
}
```
另外,类中的构造函数也应该与类名一致。我在修改代码时将构造函数名称改为了 `Swap`。
阅读全文