C++面向对象高级编程 第三周 博览网

2017-04-27  本文已影响0人  我要飞翔_2520

面向对象编程

Inheritance继承 Composition复合 Delegation委托

Composition(复合) 表示 has a

Delegation(委托).Composition by reference.Handle/Body模式(编译防火墙模式)

Inheritance(继承),表示Is a

class baseDMA { 
    private:char * point;
    ...
}
baseDMA& baseDMA::operator= (const baseDMA& rs) {
    if(this==&rs) return *this;
    delete[] point;//释放动态分配的内存
    ...//重新动态分配内存,复制内容
    return *this;
}
class hasDMA :public baseDMA{
    private: char * point2;
    ...
}
hasDMA& hasDMA::operator= (const hasDMA& rs) {
    if(this==&rs) return *this;
    baseDMA::operator=(hs);//复制基类部分
    /*通过使用函数方式显示调用基类的赋值函数作用类似于
    *this=rs;只不过如果不使用函数方式就没法使用域作用符,
    此时函数会默认调用hasDMA::operator=(),从而形成无限递归调用*/
    delete[] point2;
    ...//动态分配内存,复制内容
    return *this;
}
上一篇 下一篇

猜你喜欢

热点阅读