C++构造函数和析构函数的使用与讲解

C++构造函数和析构函数的使用与讲解,第1张

概述今天小编就为大家分享一篇关于C++构造函数和析构函数的使用与讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

构造函数(constructor)

1.构造函数是种特殊的类成员函数,遵循如下规则:

a.函数名与类名必须相同。

b.没有返回值

例如:

class Obj

{

...

public:

Obj()

{

...

}

};

2.构造函数可以带参数,也可以重载

class Obj

{

...

public:

Obj()

{

...

}

Obj(int x,int y)

{

...

}

};

3.构造函数和普通成员函数不一样,一般不显示调用。在创建一个对象时,构造函数自动调用(编译器来完成)。

析构函数(destructor)

1.析构和构造是一对相反的过程,对象被创建时调用构造函数,对象被销毁时调用析构函数,遵循如下规则:

a.名称固定,类名前加上波浪线~

b.没有返回值

c.不能带参数

例如,

class Obj

{

public:

~Obj()

{

}

};

2.析构函数只能有一个,不允许重载。

3.析构函数不显示调用,对象销毁时编译器自动调用。

重新实现链表(使用类,构造和析构函数)

创建DataObj.h头文件

#ifndef _OBJECT_H_

#define _OBJECT_H_

struct Student

{

char name[32];

int age;

Student* pNext;

};

class DataObj

{

public:

DataObj();

~DataObj();

voID add(Student* pStu);

voID find(int age);

voID printNode(Student* pNode);

private:

Student m_head;

};

#endif

创建DataObj.cpp源文件

#include @H_502_141@

#include

#include

#include "DataObj.h"

//构造有头链表

DataObj::DataObj()

{

m_head.pNext = NulL;

}

DataObj::~DataObj()

{

//指向每个节点的头部

Student* p = m_head.pNext;

//释放所有节点

while(p)

{

Student *next = p->pNext;

free(p);

p = next;

}

}

voID DataObj::add(Student* pNode)

{

//指向每个节点的头部

Student* p = &m_head;

//通过头节点查找到链表尾部节点

while (p)

{

if (p->pNext == NulL)

{

break;

}

p = p->pNext;

}

//添加节点到尾部

p->pNext = pNode;

}

voID DataObj::find(int age)

{

//标记是否找到

bool bFind = false;

Student* p = &m_head;

while(p)

{

if (p->age == age)

{

bFind = true;

printNode(p);

}

p = p->pNext;

}

if (!bFind)

{

printf("没有找到该age的节点");

}

}

voID DataObj::printNode(Student* pNode)

{

printf("name = %s,age = %dn",pNode->name,pNode->age);

}

int main()

{

//构造节点

Student* pStu = (Student*) malloc(sizeof(Student));

strcpy(pStu->name,"aaaa");

pStu->age = 30;

pStu->pNext = NulL;

{

DataObj dataObj;

//添加节点

dataObj.add(pStu);

//查找节点

dataObj.find(31);

}

return 1;

}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对内存溢出的支持。如果你想了解更多相关内容请查看下面相关链接

总结

以上是内存溢出为你收集整理的C++构造函数和析构函数的使用与讲解全部内容,希望文章能够帮你解决C++构造函数和析构函数的使用与讲解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1264417.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存