您的位置:程序门 -> 《程序员》杂志 -> 文章评论



如下c++程序中为什么多析构了一次?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如下c++程序中为什么多析构了一次?
发表于:2007-10-30 17:56:19 楼主
#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <stdlib.h>
using   namespace   std;
class   base   {

                static   int   num;
        public:
                  ~base(){cout   < <   "base   des" < <endl;   num--;   }
                    base(){cout   < <   "base   con" < <endl;   num++;   }
                    void   print(){cout < <   num < <endl;}
};
class   derived   :public   base   {

        public:   ~derived()   {   cout < <   "derived   des" < <endl;}
                          derived()   {   cout < <   "derived   con" < <endl;}
};
void   fn(base     b)
{
        cout < <   "fn" < <   endl;
        b.print();
}
int   base::num   =0;
int   main(void)
{
                base   b;
                derived   d;
                fn(d);
                b.print();
}
/*
base   con
base   con
derived   con
fn
base   des
2
derived   des
base   des
base   des
*/


快速检索

最新资讯
热门点击