#include <iostream>
#include <string.h>
using namespace std;
class classA
{
public:
classA()
{
cout << "默认构造" << endl;
}
classA(const char* cStrA)
{
cStr = new char[strlen(cStrA)+1];
strncpy_s(cStr, strlen(cStrA) + 1,cStrA, strlen(cStrA));
cout << "带参构造" << endl;
}
classA(const classA& cA)
{
cStr = new char[strlen(cA.cStr) + 1];
strncpy_s(cStr, strlen(cA.cStr) + 1, cA.cStr, strlen(cA.cStr));
cout << "拷贝构造" << endl;
}
classA& operator= (const classA &cA)
{
if (&cA == this)
{
return *this;
}
delete cStr;
cStr = new char[strlen(cA.cStr) + 1];
strncpy_s(cStr, strlen(cA.cStr) + 1, cA.cStr, strlen(cA.cStr));
cout << "赋值重载" << endl;
return *this;
}
~classA()
{
if (!cStr)
{
delete cStr;
cStr = NULL;
}
}
public:
char* cStr;
};
int main()
{
classA objA("hello world!!!");
classA objB(objA);
classA objC;
objC = objB;
}