良好的构造函数
String::String(const String & st)
{
num_strings++;
len = st.len;
str = new char [len + 1];
std::strcpy(str, st.str);
}
定义赋值运算符
String & String::operator=(const String & st)
{
if (this == &st)
return *this;
delete [] str;
len = st.len;
str = new char [len + 1];
std::strcpy(str, st.str);
return *this;
}
返回对象将调用复制构造函数,而返回引用不会。
重载<< 运算符
ostream & operator<<(ostream & os, const c_name & obj)
{
os << ...;
return os;
}
转换函数
将单个值转换为类类型,需要创建原型如下的类构造函数
c_name(type_name value);
将类转换为其他类型,需要创建原型如下所示的类成员函数
operator type_name();
该函数没有申明返回类型,但应返回所需类型的值。
复制构造函数
classname(const classname &);
重载赋值运算符的成员函数
c_name & c_name::operator=(const c_name & cn)
{
if (this == & cn)
return *this;
delete [] c_pointer;
c_pointer = new type_name[size];
return *this;
}