c++小程序为什么总是编译不成功,那里出问题了?

来源:百度知道 编辑:UC知道 时间:2024/06/13 15:43:32
小女菜鸟,初学c++,请教一下,为什么编译不成功,请高手指点,谢谢!
#include<iostream>
#include<string>
using namespace std;

string vst1(const string &s1,const string &s2);
const string &vst2(const string &s1,const string &s2);
const string &vst3(const string &s1, string &s2);

int main()
{
string input;
string copy;
string result1;
string result2;

cout << "Enter a string :";
getline(cin,input);
copy = input;
cout << copy<<endl;
result1 = vst1(input,"@@@");
cout << result1 << endl;
result2 = vst2(input,"@@@");
cout << result2 << endl;
system("pause");
}

string vst1( string &s1,const string &s2)
{

s1 = s2 + s1 + s2;
return s1;
}

const string &vst2( string &s1,string &s2)

函数vst1 vst2的声明和定义对不上
你下面的函数头贴到上面覆盖原来的吧

const string &vst2(const string &s1,const string &s2)
{

s1 = s2 + s1 + s2;
return s1;
}

既然都声明变量为const,就不能更改他

这样写吧

#include<iostream>
#include<string>
using namespace std;
string vst1( string &s1, string &s2);

string &vst2( string &s1, string &s2);

void main()
{
string input;
string copy;
string result1;
string result2;
string str="@@@";

cout << "Enter a string :";
getline(cin,input);
copy = input;
cout << copy<<endl;
result1 = vst1(input,str);
cout << result1 << endl;
result2 = vst2(input,str3);
cout << result2 << endl;
system("pause");
}

string vst1( string &s1, stri