无参构造、有参构造、拷贝构造、拷贝赋值是对基础的构造拷贝函数的重载,为了完成自己特殊的需求。
代码示例:
#include <iostream>
#include <cstring>
using namespace std;
class stud
{
public:
stud(){}//无参构造
~stud(){}
stud(char * n,int a):str(n)//有参构造
{
len =a;
}
stud(stud &N) //拷贝构造
{
this->str = N.str;
this->len = N.len;
}
stud &operator=(stud & R)//拷贝赋值
{
this->str = R.str;
this->len = R.len;
return *this;
}
bool my_empty()
{
if(len==0)
return true;
return false;
}
int my_size()
{
return strlen(str);
}
char * my_str()
{
return str;
}
void display()
{
cout<<str<<'\t'<<len<<endl;
}
private:
int len;
char * str;
};
int main()
{
stud s1("aaa",1),s2("bbb",2);
stud s3(s1);
s2.display();
s2.operator =(s1);
s2.display();
cout<<s2.my_size()<<'\t'<<s2.my_str()<<endl;//测试my_strlen与my_str的运行结果
cout << "Hello World!" << endl;
return 0;
}
结果测试: