#include<iostream>
#include<string>
using namespace std;
class string
{
char *name;
int length;
public:
string() //constructor-1
{
length = 0;
name = new char[length+1];
}
string(char *s) //constructor-2
{
length = strlen(s);
name = new char[length + 1]; //one additional character for \0
strcpy(name, s);
}
void display(void)
{cout << name << "\n";}
void join(string &a, string &b);
};
void string :: join(string &a, string &b)
{
length = a.length + b.length;
delete = name;
name = new char[length+1]; //dynamic allocation
strcpy(name, a.name);
strcat(name, b.name);
};
int main()
{
char *first = "Joseph";
String name1(first), name2("Louis"), name3("Lagrange"), s1, s2;
s1.join(name1, name2);
s2.join(s1, name3);
name1.display();
name2.display();
name3.display();
s1.display();
s2.display();
return 0;
}