现在的位置: 首页 > 综合 > 正文

构造函数/析构函数

2018年02月03日 ⁄ 综合 ⁄ 共 853字 ⁄ 字号 评论关闭

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

   在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;

}








抱歉!评论已关闭.