Professional Documents
Culture Documents
OOP Assignment 2
Zaman Shahzad
BCS02163484
class MyName
{
public:
MyName (const char *str);
~MyName ();
private:
char *emp_name;
};
MyName::~MyName ()
{
delete[]emp_name;
}
int main ()
{
MyName name ("wikistack");
MyName name1 = name; // initialie name1 from name object
return 0;
}
Here we will have issue after running the above code. Because we have not
Provide copy constructor and overloaded assignment operator in class MyName.
class MyName
{
public:
MyName (const char *str);
~MyName ();
MyName (const MyName & another);
void operator = (const MyName & another);
private:
char *emp_name;
};
MyName::~MyName ()
{
delete[]emp_name;
}
MyName::MyName (const MyName & another)
{
emp_name = new char[strlen (another.emp_name) + 1];
strcpy (emp_name, another.emp_name);
}
void
MyName::operator = (const MyName & another)
{
char *temp = new char[strlen (another.emp_name) + 1];
strcpy (temp, another.emp_name);
delete[]emp_name;
emp_name = temp;
}
int main ()
{
MyName name ("wikistack");
MyName name1 = name;
return 0;
}