Я хотел знать, как здесь вызывать конструктор копирования в этом процессе конкатенации. S3 = s1 + s2; должен иметь возможность вызвать конструктор копирования и назначить его s3. Возможно ли это? Если да, пожалуйста, помогите мне здесь. БлагодаряИспользование C++ Copy Constructor для конкатенации строк
#include<iostream.h>
#include<conio.h>
#include<string.h>
class String
{
char x[40];
public:
String() { } // Default Constructor
String(char s[])
{
strcpy(x,s);
}
String(String & s)
{
strcpy(x,s.x);
}
String operator + (String s2)
{
String res;
strcpy(res.x,x);
strcat(res.x,s2.x);
return(res);
}
friend ostream & operator << (ostream & x,String & s);
};
ostream & operator << (ostream & x,String & s)
{
x<<s.x;
return(x);
}
int main()
{
clrscr();
String s1="Vtu";
String s2="Belgaum";
String s3 = s1+ s2; // Should invoke copy constructor to concatenate and assign
cout<<"\n\ns1 = "<<s1;
cout<<"\n\ns2 = "<<s2;
cout<<"\n\ns1 + s2 = "<<s3;
getch();
return 0;
}
Путь s1 = s2 называет конструктор копирования, выражение Строка s3 = s1 + s2; Должен также иметь возможность вызвать конструктор копирования. Если вы знаете, как это сделать, пожалуйста, помогите. – user3386500