1.如果派生类之间的区别在于属性,则用数据成员来表示;如果在于行为,则用虚函数来表示。
2.构造函数应该使得对象处于明确定义的状态。 A(){m_s = new char[80]; m_s[0] = '\0';}
3.考虑使用默认参数的形式来代替函数重载的形式。
4.类的接口定义应该是一致的,基于一致的假设。
5.对于每个new操作,都要有相应的delete操作。
6.对于重载operator=时,我们要注意x=x的情形。
SimpleString& SimpleString::operator=(const SimpleString& s)
{
if( this == &s )
return *this;
......
}