返回首页 我的新博客

析构函数和虚函数、纯虚函数

置于“~”是析构函数;析构函数因使用“~”符号(逻辑非运算符),表示它为逆构造函数,加上类名称来定义。 
析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。 
有适放内存空间的作用。 

虚函数是C++多态的一种表现 
例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为virturl(虚函数)。 
使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。 

如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virturl 函数名=0 
我们把这样的函数(方法)称为纯虚函数。 
如果一个类包含了纯虚函数,称此类为抽象类。

全局变量是整个程序都可访问的变量,谁都可以访问,生存期在整个程序从运行到结束(在程序结束时所占内存释放),而局部变量存在于模块(子程序,函数)中,只有所在模块可以访问,其他模块不可直接访问,模块结束(函数调用完毕),局部变量就消失,所占据的内存释放。 
      
操作系统和编译器,可能是通过内存分配的位置来知道的,全局变量分配在全局数据段并且在程序开始运行的时候被加载。局部变量则分配在堆栈里面 。
虚函数可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时,基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数,而不是基类中定义的成员函数(只要派生类改写了该成员函数)。若不是虚函数,则不管基类指针指向的哪个派生类对象,调用时都会调用基类中定义的那个函数。
posted @ 2009-05-21 13:57  buffer的blogs  阅读(430)  评论(0编辑  收藏  举报