类的设计

来源:互联网 发布:智慧农业大数据平台 编辑:程序博客网 时间:2024/06/07 11:35

类需要虚析构函数吗?

虚析构函数会增加开销。“只为用到的东西付出代价”。
B派生D,B* bp = new D; delete bp。时候,需要虚析构函数。即便B中没有任何函数,也没有任何虚成员函数,B中也要有一个virtual ~B(){}

复制构造函数?
赋值操作符?

class String {public:    String();    String(const char*s);    String(const String &s);    String& operator=(const String & s)    {        if(&s!=this){            delete [] data;            data = new char[strlen(s.data)+1];            strcpy(data,s.data);        }        return *this;    }private:    char * data;}
String & String::String(const String &s){    char * newData = new char[strlen(s.data)+1];        strcpy(data,s.data);    delete[] data;    data = newData;    return *this;}

关系操作符?

如果想创建类类型的有序集合,必须提供关系操作符。

delete v.s. delete [].

如果成员函数不修改它的对象,那么,将其声明为const;

int length() const;
0 0