You are on page 1of 1

using namespace std;

// class declaration
class MyString {
private:
char* name;
int len;
public:
MyString(const char* s = "");
MyString(int);
MyString(const MyString&);
void Print();
~MyString();
};

MyString::MyString(const char* str) {


len = strlen(str);
name = new char[len + 1];
strcpy_s(name, len +1, str);
cout << " constr with param char*" << endl;
}
MyString::MyString(int l) {
len = l;
name = new char[l + 1];

*name = '\0';

cout << " constr with param int" << endl;


}
MyString::MyString(const MyString& str) {
len = str.len;
name = new char[len + 1];
strcpy_s(name, strlen(str.name) +1, str.name);
cout << " copy constr" << endl;
}

void MyString::Print() {
cout << "print fct " << endl;
cout << name << endl;

}
MyString::~MyString() {
if(name != nullptr)
delete[] name;
cout << "destructor" << endl;
}
int main() {
MyString s(50);
s.Print();
MyString s2("Hello");
cout << endl;
s2.Print();
cout << endl;
MyString s3(s2);
s3.Print();
cout << endl;
return 0;
}

You might also like