继承和动态内存分配(C++ Primer Plus 第十三章)
来源:互联网 发布:淘宝女装销量 编辑:程序博客网 时间:2024/04/30 18:56
第一种情况:派生类中不使用new
class baseDMA{private: char *label; int rating; public: baseDMA(const char *l = nullptr, int r =0); baseDMA( const baseDMA &rs); virtual ~baseDMA(); baseDMA & operator=( const baseDMA &rs); };
class lacksDMA : public baseDMA {private: char color[40];//原书这里有错误,我猜测应该是 long temp; 定义一个长整形。 public:};派生类lacksDMA不使用new。
派生类直接使用基类的析构函数没有问题。
难点在于理解重载复制构造函数。 如果是long参数的话,那lacksDMA复制的话,temp变量采用常规赋值即可,继承的baseDMA对象则采用基类的复制构造函数。
第二种情况:派生类使用了new
class lacksDMA : public baseDMA {private: char *style; public:};这种情况下,派生类必须定义显示析构函数,复制构造函数和赋值运算符。
如下:
hasDMA::hasDMA(const hasDMA & hs) : baseDMA(hs){ style = new char[ std::strlen(hs.style)+1]; std::strcpy(style, hs.style);}hasDMA & hasDMA::operator=(const hasDMA & hs){ if (this == &hs) { return *this; } baseDMA::operator=(hs); //赋值基类对象 也是采用动态分配内存 显示调用 delete []style; style = new char[ std::strlen(hs.style)+1]; std::strcpy(style, hs.style); return *this;}hasDMA::~hasDMA(){ delete [] style;}
0 0
- 继承和动态内存分配(C++ Primer Plus 第十三章)
- 继承和动态内存分配(C++ Primer Plus 第十三章)
- C++ Primer Plus 第12章 类和动态内存分配
- 继承与动态内存分配——《c++primer plus第五版》
- C++ primer plus 阅读记录-类和动态内存分配
- 《C++ Primer Plus(第六版)》(23)(第十二章 类和动态内存分配 复习题和答案)
- 《C++ Primer Plus(第六版)》(24)(第十二章 类和动态内存分配 编程题和答案)
- C++ Primer Plus学习:第十三章 类继承(1)
- C++ Primer Plus学习:第十三章 类继承(2)
- C++ Primer Plus学习:第十三章 类继承(3)
- 《C++ Primer Plus(第六版)》(22)(第十二章 类和动态内存分配 笔记)
- 2012/1/27 《C++ Primer Plus》第十二章:类和动态内存分配 学习笔记
- C++ primer plus 第12章 类和动态内存分配
- 【读书笔记:C++ primer plus 第六版 中文版】第12章 类和动态内存分配
- C++ primer plus 第12章 类和动态内存分配
- C++ Primer Plus学习之类学习三(类和动态内存分配)
- C++Primer Plus(第六版) 第十三章 第一题
- C++Primer Plus(第六版) 第十三章 第二题
- 判断为iPhone 还是iPad?
- 设计模式【1】:原型模式【创建对象】
- Java集合详解
- 三星矫情,重温Galaxy S5发布会收买人心
- Oracle 网络问题错误日志典型格式
- 继承和动态内存分配(C++ Primer Plus 第十三章)
- leetcode-Letter Combinations of a Phone Number
- 黄海波被曝嫖娼被拘 移送拘留所供认不讳
- java基础(1)文档注释
- 词性标注
- static 作用总结(c/c++)
- android layout_weight
- STM8S TIM4库函数应用
- Eclipse去除js(JavaScript)验证错误