我怎样才能一次传递两个字符串

时间:2016-11-06 22:34:21

标签: c++ string class

任何人都可以修复错误吗?

#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;

1 个答案:

答案 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();
}