【菜鸟C++学习笔记】12.构造函数与析构函数
2012-07-15 11:01
288 查看
1、构造函数
定义:用于创建一个类所有对象的函数,函数名应与类同名,另外声明定义可以合在一起构成隐式内联函数。使用方法参考下面程序:
#include<iostream>
using namespace std;
class rectangle
{
public:
rectangle(int l,int w)//rectangle类的构造函数
{length=l;width=w;}
int area()
{return length*width;}
private:
int length,width;
};
void main()
{
rectangle a(3,4);//创建对象a的同时进行初始化
cout<<a.area()<<endl;
}输出结果:12
分析:在创建一个对象时,系统会自动调用该类的构造函数,对对象进行初始化,另外注意构造函数是没有返回值的。
讨论:如果无法确定矩形的长和宽,即不定义构造函数的话,系统会自动创建一个无参数也无任何功能的构造函数,仅用于创建一个对象,称为默认构造函数,如:
rectangle(){}
2、析构函数
析构函数用于在对象销毁后清除其所占用的内存空间,其格式与默认构造函数是一样的,即无参数无返回值,唯一的区别就是需要在函数前加一个符号“~”,具体如下:
#include<iostream>
using namespace std;
class A
{
public:
A(){cout<<"执行构造函数"<<endl;}
~A(){cout<<"执行析构函数"<<endl;}
};
int main()
{
A a;
return 0;
}输出结果:执行构造函数
执行析构函数
注意:定义时加入函数的输出是为了说明创建对象时调用了构造函数,程序结束时对象a的寿命终止,将调用析构函数。另外,创建几个对象,就调用几次构造函数和析构函数。一般创建多个对象时,可以采用数组的形式,即将11行代码修改为:
A a[2];//创建有两个对象的对象数组此时输出结果为:
执行构造函数
执行构造函数
执行析构函数
执行析构函数
定义:用于创建一个类所有对象的函数,函数名应与类同名,另外声明定义可以合在一起构成隐式内联函数。使用方法参考下面程序:
#include<iostream>
using namespace std;
class rectangle
{
public:
rectangle(int l,int w)//rectangle类的构造函数
{length=l;width=w;}
int area()
{return length*width;}
private:
int length,width;
};
void main()
{
rectangle a(3,4);//创建对象a的同时进行初始化
cout<<a.area()<<endl;
}输出结果:12
分析:在创建一个对象时,系统会自动调用该类的构造函数,对对象进行初始化,另外注意构造函数是没有返回值的。
讨论:如果无法确定矩形的长和宽,即不定义构造函数的话,系统会自动创建一个无参数也无任何功能的构造函数,仅用于创建一个对象,称为默认构造函数,如:
rectangle(){}
2、析构函数
析构函数用于在对象销毁后清除其所占用的内存空间,其格式与默认构造函数是一样的,即无参数无返回值,唯一的区别就是需要在函数前加一个符号“~”,具体如下:
#include<iostream>
using namespace std;
class A
{
public:
A(){cout<<"执行构造函数"<<endl;}
~A(){cout<<"执行析构函数"<<endl;}
};
int main()
{
A a;
return 0;
}输出结果:执行构造函数
执行析构函数
注意:定义时加入函数的输出是为了说明创建对象时调用了构造函数,程序结束时对象a的寿命终止,将调用析构函数。另外,创建几个对象,就调用几次构造函数和析构函数。一般创建多个对象时,可以采用数组的形式,即将11行代码修改为:
A a[2];//创建有两个对象的对象数组此时输出结果为:
执行构造函数
执行构造函数
执行析构函数
执行析构函数
相关文章推荐
- C++学习笔记12 构造函数与析构函数下
- c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)
- C++学习笔记-2-构造函数和析构函数
- 《C++ Primer Plus》10.3 类的构造函数和析构函数 学习笔记
- 学习笔记之深入浅出MFC 第8章 C++重要性质---构造函数与析构函数
- c++学习笔记4,派生类的构造函数与析构函数的调用顺序(一)
- C++学习笔记_2:单一继承时的构造函数与析构函数
- C/C++学习笔记:String类的构造函数、析构函数和赋值函数
- C++ 学习笔记(13)拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数、右值引用、引用限定符
- 【菜鸟C++学习笔记】26.构造函数
- 【C++面向对象学习笔记】-构造函数和析构函数
- 【C++】学习笔记四十七——类的构造函数和析构函数
- C++学习笔记(调用构造函数和析构函数的顺序)
- C++学习笔记一、构造函数和析构函数的概念
- C++学习笔记1:构造函数和析构函数
- C++学习笔记(六)-- 类和对象 构造函数和析构函数 const成员函数 this指针 对象数组 堆栈管理变量
- C++ 析构函数与构造函数 学习笔记1
- EffectiveC++第三章构造函数析构函数和赋值操作符学习笔记
- C++学习笔记(4)——派生类的构造函数和析构函数
- c++学习笔记之构造函数和析构函数