<>强构造函数(构造函数)强>
1。构造函数是种特殊的类成员函数,遵循如下规则:
-
<李>,,,,a。函数名与类名必须相同。李>
<李>,,,,李b。没有返回值>
例如:
类Obj { … 公众: Obj () { … }};
2。构造函数可以带参数,也可以重载
类Obj { … 公众: Obj () { … } Obj (int x, int y) { … }};
3。构造函数和普通成员函数不一样,一般不显示调用。在创建一个对象时,构造函数自动调用(编译器来完成)。
<强>析构函数(破坏者)强>
1。析构和构造是一对相反的过程,对象被创建时调用构造函数,对象被销毁时调用析构函数,遵循如下规则:
-
<李>,,,一。名称固定,类名前加上波浪线~ 李>
<李>,,,李b。没有返回值>
<李>,,,李c。不能带参数>
例如,
类Obj { 公众: ~ Obj () { }};
2。析构函数只能有一个,不允许重载。
3。析构函数不显示调用,对象销毁时编译器自动调用。
<强>重新实现链表(使用类,构造和析构函数)强>
创建DataObj.h头文件
的ifndef _OBJECT_H_ #定义_OBJECT_H_ 结构体的学生 { char[32]名称; int年龄; 学生* pNext; }; 类DataObj { 公众: DataObj (); ~ DataObj (); 空白添加(学生* pStu); 空白找到(int年龄); 空白printNode(学生* pNode); 私人: 学生m_head; }; # endif
创建DataObj.cpp源文件
# include & lt; stdio.h> # include & lt; string.h> # include & lt; stdlib.h> # include“DataObj.h”//构造有头链表 DataObj: DataObj () { m_head。pNext=零; } DataObj:: ~ DataObj () {//指向每个节点的头部 学生* p=m_head.pNext;//释放所有节点 而(p) { 学生*下=p→pNext; 自由(p); p=下一个; } } 空白DataObj:添加(学生* pNode) {//指向每个节点的头部 学生* p=, m_head;//通过头节点查找到链表尾部节点 而(p) { 如果(p→pNext==NULL) { 打破; } p=p→pNext; }//添加节点到尾部 p→pNext=pNode; } 空白DataObj::找到(int年龄) {//标记是否找到 bool bFind=false; 学生* p=, m_head; 而(p) { 如果年龄(p→年龄==) { bFind=true; printNode (p); } p=p→pNext; } 如果(! bFind) { printf("没有找到该年龄的节点”); } } 空白DataObj: printNode(学生* pNode) { printf (" name=% s,年龄=% d \ n”, pNode→名称、pNode→年龄); } int main () {//构造节点 学生* pStu=(学生*)malloc (sizeof(学生); strcpy (pStu→名称,“aaaa”); pStu→年龄=30; pStu→pNext=零; { DataObj DataObj;//添加节点 dataObj.add (pStu);//查找节点 dataObj.find (31); } 返回1; }
<强>总结强>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接