从C看C++之(四)构造函数与析构函数

来源:互联网 发布:如何优化手机系统 编辑:程序博客网 时间:2024/04/30 18:01

 构造函数的意义:

实现类成员初始化的一种快捷方式.
 使用限制:

1.与类名一样;2.无返回类型,void都不可以;3.其访问权限绝大部分是public,如果用于其派生类的话,可以是protect;
    调用机制:

定义类对象时,就要调用构造函数.如果没有显式声明的话,则系统调用缺少的默认的构造函数.如果存在多个构造函数,定义类对象时,需要显式指定调用哪个.

 构造函数的声明模板:

className::className(){    ...;}

    析构函数:

在对象的生命期结束时,释放系统为对象所分配的空间,即撤消一个对象.但是这里需要特别注意的是,new出来的对象是不会自动释放的,需要调用其反运算符delete.

    使用限制:

1.函数名必须与类名相同,并在其前面加上字符“~”;2.不能带有任何参数,不能有返回值,不指定函数类型;3.一个类中,只能定义一个析构函数,析构函数不允许重载;4.析构函数是在撤消对象时由系统自动调用.


    析构函数的声明模板:

ClassName::~ClassName( ){           ...;}

    一个构造函数与析构函数的示例:

#include <iostream>class simpleClass{private:        float x,y;public:        float m,n;        void setXY(float,float);        void getXY();        simpleClass(float,float);        ~simpleClass();};simpleClass::~simpleClass(){        std::cout << "GoodBye,Crue World!"<< std::endl;}simpleClass::simpleClass(float a,float b){        x = a;        y = b;}void simpleClass::setXY(float a,float b){        x = a;        y = b;}void simpleClass::getXY(void){        std:: cout << x << '\t' << y << std::endl;}int main(void){        simpleClass cls1(3.0,6.0);        cls1.m = 10;        cls1.n = 20;        cls1.getXY();        cls1.setXY(2.0,5.0);        cls1.getXY();        return 0;}

    编译运行:

root@se7en-LIFEBOOK-LH531:~/learn/Cpp_Program# g++ this.cpp -o thisroot@se7en-LIFEBOOK-LH531:~/learn/Cpp_Program# ./this 3625GoodBye,Crue World!


0 0
原创粉丝点击