构造函数/析构函数

本文详细介绍了C++中构造函数和析构函数的使用方法及作用,包括如何通过构造函数实现对象的初始化,以及如何使用析构函数进行内存回收。重点阐述了静态内从分配和动态内从分配的区别,以及它们在C++中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    内从的分配可以分为静态内从分配和动态内从分配,静态内从分配就是在程序编译的时候就要知道大小并同时给它分配内从空间,而动态内从空间分配就是字编译的时候不会分配空间而是等到调用时在动态的分配内从空间,用完了之后就会被回收;

   在c++中内从的分配和回收都是有程序员完成,一般动态内从的分配就是像一些局部变量(形参,局部变量,代码块中定义的变量)而这些内从的回收就是使用析构函数来

    而使用构造函数来实现对象的初始化,内存分配在对象初始化的时候是按照变量的定义顺序来实现的但是我们使用析构函数来释放内存的时候是按照实现时相反的顺序来实现,也就是按照栈的那种方式先进后出来实现。

   构造函数和析构函数:如果不自定义一个构造函数则系统会自动生成一个无参数的构造函数,如果自定义一个或多个的话系统不会自动生成。

    构造函数没有返回类型,而且构造函数的名称要和类名称相同(实质上有返回类型就是这个类类型)。

    析构函数也没有返回类型构造函数名就是类名取反(~),析构函数没有参数。


举例:

#include<iostream.h>
#include<string.h>

class  Person{
private:

int age ;
char *name;
public :

Person();
Person(int  a, char*n);
~Person();
void tell();

};

Person::Person(){
age=0;
name="\0";
}

Person::Person(int a, char* n){
age=a;
name= new char[strlen(n)+1];
strcpy(name,n);
}
Person::~Person(){
delete []name;
}

void Person::tell(){
cout<<"age"<<age<<endl;
cout<<"name"<<name<<endl;

}

int   main(){
Person p1;
Person p2(10,"dongdong");
p2.tell();
return  0;

}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值