C++ 类的析构函数学习笔记5
来源:互联网 发布:淘宝店铺 不显示所在地 编辑:程序博客网 时间:2024/05/21 05:07
一个相对复杂的例子,子类的vector中的元素为指针
#include <vector>
#include <iostream>#include <string>
using namespace std;
class human
{
protected:
string _name;
public:
human()
{
};
~human()
{
cout << _name << endl;
};
string getName() {return _name;};
void setName(string aName) {_name = aName;};
};
class man : public human
{
public:
vector<human*> children;
~man()
{
for(size_t iChild = 0; iChild < children.size(); iChild++)
{
if(children[iChild] != 0)
{
delete children[iChild];
}
}
}
};
int main()
{
vector<man*> daddys;
man* daddy1 = new man(); daddy1->setName("daddy1");
human* child1 = new human(); child1->setName("child1");
daddy1->children.push_back(child1);
daddys.push_back(daddy1);
daddys[0]->children[0]->setName("child2");
daddys[0]->setName("daddy3");
delete daddy1;
return 1;
}
输出结果:
child2
daddy3
看起来比较复杂,其实只要想明白一个道理,一个new 对应一个 delete,
结合前面的例子就可以明白。
0 0
- C/C++学习笔记:String类的构造函数、析构函数和赋值函数
- 【C++】学习笔记四十七——类的构造函数和析构函数
- C++ 类的析构函数学习笔记5
- C++:函数<学习笔记>
- 【C++】【学习笔记】【006】函数的重载
- C语言的学习笔记2-函数
- c++primer学习笔记5 - 函数
- C++学习笔记:类的析构函数
- C++ 类的析构函数学习笔记1
- C++ 类的析构函数学习笔记2
- C++ 类的析构函数学习笔记3
- C++ 类的析构函数学习笔记4
- C++ 类的析构函数学习笔记6
- C++ 类的析构函数学习笔记7
- C++ 类的析构函数学习笔记1
- C学习笔记之函数
- C语言学习笔记----伊能C语言学习笔记-----函数的副本机制
- C++学习笔记11 构造函数与析构函数
- LeetCode: Construct Binary Tree from Inorder and Postorder Traversal
- java学习路线推荐书籍
- 关于printf参数字节数的研究
- Android volley 解析(三)之文件上传篇
- 模拟MMU设计一个将IPv4地址索引化的路由表,不同于DxR
- C++ 类的析构函数学习笔记5
- UNIX/Linux 中的bg/fg/jobs命令解析
- iOS启动类型分析
- 杭电acm1097
- 回调函数
- 基础工具-单件模式
- sqoop 使用小计
- 从模拟MMU设计一个路由表的失败到DxR的回归
- 黑马程序员----JAVA语法基础(一)