C++Primer Plus(第六版) 第十二章 第一题
来源:互联网 发布:什么是奥菲斯软件 编辑:程序博客网 时间:2024/05/09 07:26
本题主要是对本章基本内容的掌握,对于动态分配内存(new、new[])的情况下析构函数要对应用delete、delete[],同时由于析构函数只有一个,故注意所有的构造函数(包括重载的=运算符等)都采用相同的动态内存分配方式。
代码如下:
#include <iostream>#include "cow.h"Cow::Cow(){hobby = new char[1];hobby[0] = '\0';}Cow::Cow(const char * nm, const char * ho, double wt){strcpy(name, nm);hobby = new char[strlen(ho) + 1];strcpy(hobby, ho);weight = wt;}Cow::Cow(const Cow & c){strcpy(name, c.name);hobby = new char[strlen(c.hobby) + 1];strcpy(hobby, c.hobby);weight = c.weight;}Cow::~Cow(){delete[] hobby;}Cow & Cow::operator=(const Cow & c){if (this == &c)return *this;strcpy(name, c.name);delete[] hobby;hobby = new char[strlen(c.hobby) + 1];strcpy(hobby, c.hobby);weight = c.weight;return *this;}void Cow::showCow() const{using std::cout;using std::endl;cout << "name: " << name << endl;cout << "hobby: " << hobby << endl;cout << "weight: " << weight << endl;}测试代码:
#include <iostream>#include "cow.h"using namespace std;int main(){{Cow cow();}Cow cow("abcd", "habby", 45);Cow adc = cow;cow.showCow();adc.showCow();cin.get();return 0;}
阅读全文
0 0
- C++Primer Plus(第六版) 第十二章 第一题
- C++Primer Plus(第六版) 第十二章 第二题
- C++Primer Plus(第六版) 第十三章 第一题
- C++Primer Plus(第六版) 第十四章 第一题
- C++Primer Plus(第六版) 第十六章 第一题
- C ++ Primer Plus 第六版 第十二章编程练习答案
- C++Primer Plus(第六版) 第六章 第二题
- C++Primer Plus(第六版) 第七章 第六题
- C++ Primer Plus(第六版) 第八章 第一题
- 【学习C++】C++ Primer Plus (第六版)第十二章编程练习1-6
- C++Primer Plus(第六版) 第八章 第二题
- C++Primer Plus(第六版) 第八章 第四题
- C++Primer Plus(第六版) 第十章 第八题
- C++Primer Plus(第六版) 第十一章 第七题
- C++Primer Plus(第六版) 第十三章 第二题
- C++Primer Plus(第六版) 第十三章 第四题
- C++Primer Plus(第六版) 第十四章 第五题
- C++Primer Plus(第六版) 第十六章 第八题
- 在centos6.5系统下配置LAMP详解教程
- 【搜索入门专题1】hdu2717 H
- 弹出层效果
- SCU 4439 Vertex Cover (dfs +剪枝 一般图的点覆盖)
- 字符串全排列
- C++Primer Plus(第六版) 第十二章 第一题
- Javascript自定义错误,继承Error
- javascript的一道this综合题目
- css兼容总结
- PERL能为我做什么(1)
- Linux bash学习
- 浅谈http协议
- Android零基础入门第19节:Button使用详解
- HDU2112 最短路入门题 spfa