任何人都可以修复错误吗?
#include<iostream>
#include<string>
using namespace std;
class base{
public:
int i,j;
char s[10],r[10];
void set(char a, char b ){
s[10]=a;
r[10]=b;
}
void show()
{
cout<<s+std::string(r);
}
};
int main()
{
char a[10],c[10];
cout<<"Enter first string"<<endl;
cin>>a;
cout<<"Enter second string"<<endl;
cin>>c;
base b;
b.set(a,b);
return 0;
}
ERROR:
在函数&#39; int main()&#39;:32:14:错误:没有匹配函数来调用&#39; base :: set(char [10],base&amp;)&#39 ; 32:14:注意:候选人是:11:10:注意:void base :: set(char,char)11:10:注意:没有已知的转换参数2来自&#39; base&#39;到&#39; char&#39;
答案 0 :(得分:1)
鉴于您的评论,您的意图已得到澄清。您需要将char指针或std::string
传递给set
方法。 char
只是一个字符,而不是一串字符。
以下将做你想要的。
#include<iostream>
#include<string>
using std::cin;
using std::cout;
using std::string;
class base
{
public:
string s, r;
void set(const string& a, const string& b)
{
s = a;
r = b;
}
void show()
{
cout << s << ' ' << r << '\n';
}
};
int main()
{
string first, second;
cout << "Enter first string\n";
cin >> first;
cout << "Enter second string\n";
cin >> second;
base b;
b.set(first, second);
b.show();
}