我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 虚的析构函数主要用在哪个地方? 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

yan



性别: 保密 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2255
威望: 0
浮云: 1122
在线等级:
注册时间: 2006-02-23
最后登陆: 2008-06-29

5come5帮你背单词 [ bold /bəuld/ a. 大胆的,冒失的,鲜明的,醒目的,(线、字等)粗的 ]


虚的析构函数主要用在哪个地方?

RT,还有要怎么使用啊?
顶端 Posted: 2007-12-04 13:55 | [楼 主]
goal



性别: 帅哥 状态: 该用户目前不在线
头衔: 爱生活
等级: 人见人爱
家族: KOP★红军魂
发贴: 4867
威望: 0
浮云: 1164
在线等级:
注册时间: 2006-06-03
最后登陆: 2008-06-28

5come5帮你背单词 [ cube /kju:b/ n. 立方;立方体(形) ]


用在派生类上
顶端 Posted: 2007-12-04 14:02 | [1 楼]
yan



性别: 保密 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2255
威望: 0
浮云: 1122
在线等级:
注册时间: 2006-02-23
最后登陆: 2008-06-29

5come5帮你背单词 [ sorry /'sori/ a. 后悔的,抱歉的,难过的,惋惜的,遗憾的,懊悔的 ]


能举个例子么?
顶端 Posted: 2007-12-04 14:12 | [2 楼]
goal



性别: 帅哥 状态: 该用户目前不在线
头衔: 爱生活
等级: 人见人爱
家族: KOP★红军魂
发贴: 4867
威望: 0
浮云: 1164
在线等级:
注册时间: 2006-06-03
最后登陆: 2008-06-28

5come5帮你背单词 [ listen /'lisn/ n. 听,听信,听从 ]


这个我其实也没用过
只是认为是不是假设a是b的父类你在构造b时用a的构造函数new了个对象b的构造函数也new了一个对象,当你想b的消失而a的继续存在。
你觉得的呢
本帖最近评分记录:
  • 浮云:3(ljpdxj) 积极讨论!也谢谢解答
  • 顶端 Posted: 2007-12-04 14:28 | [3 楼]
    yan



    性别: 保密 状态: 该用户目前不在线
    等级: 人见人爱
    发贴: 2255
    威望: 0
    浮云: 1122
    在线等级:
    注册时间: 2006-02-23
    最后登陆: 2008-06-29

    5come5帮你背单词 [ japanese /d3əæpə'ni:z/ n. & a. 日本(的),日本人(的)日语(的) ]


    还是搞不懂啊,如果有具体的例子就更好了。
    顶端 Posted: 2007-12-11 18:24 | [4 楼]
    goal



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 爱生活
    等级: 人见人爱
    家族: KOP★红军魂
    发贴: 4867
    威望: 0
    浮云: 1164
    在线等级:
    注册时间: 2006-06-03
    最后登陆: 2008-06-28

    5come5帮你背单词 [ strengthen /'streŋθən/ vt. 加强,巩固 ]


    我说错了
    顶端 Posted: 2007-12-11 19:34 | [5 楼]
    yan



    性别: 保密 状态: 该用户目前不在线
    等级: 人见人爱
    发贴: 2255
    威望: 0
    浮云: 1122
    在线等级:
    注册时间: 2006-02-23
    最后登陆: 2008-06-29

    5come5帮你背单词 [ wire /'waiə/ n. 电线,金属丝,电报,电信,给…发电报,给…安装电线;vi. 发电报 ]


    我终于明白了:
    Copy code
    #include <stdio.h>

    class A
    {
    public:
        A()
        {
            printf("call A::A\n");
        }

        ~A()
        {
            printf("call A::~A\n");
        }
    };

    class B:public A
    {
    private:
        int *p;
    public:
        B()
        {
            p = new int[1000];
            printf("call B::B\n");
        }

         ~B()
        {
             if (p)
             {
                 delete []p;
             }
            printf("call B::~B\n");
        }
    };

    int main(int argc, int *argv[])
    {
        A *z = new B;

        delete z;
        return 0;
    }

    运行结果是:
    call A::A
    call B::B
    call A::~A
    没有把p指针指向的内存释放掉。
    顶端 Posted: 2007-12-11 19:36 | [6 楼]
    yan



    性别: 保密 状态: 该用户目前不在线
    等级: 人见人爱
    发贴: 2255
    威望: 0
    浮云: 1122
    在线等级:
    注册时间: 2006-02-23
    最后登陆: 2008-06-29

    5come5帮你背单词 [ opposite /'opəzit/ a. 对面的,对立的;n. 对立面,对立物;prep. 在…的对面 ]


    Copy code
    #include <stdio.h>

    class A
    {
    public:
        A()
        {
            printf("call A::A\n");
        }

        virtual ~A()
        {
            printf("call A::~A\n");
        }
    };

    class B:public A
    {
    private:
        int *p;
    public:
        B()
        {
            p = new int[1000];
            printf("call B::B\n");
        }

        ~B()
        {
            if (p)
            {
                delete []p;
            }
            printf("call B::~B\n");
        }
    };

    int main(int argc, int *argv[])
    {
        A *z = new B;

        delete z;
        return 0;
    }

    在A的析构函数中加了vritual
    结果是:
    call A::A
    call B::B
    call B::~B
    call A::~A
    这样才是正确的。
    顶端 Posted: 2007-12-11 19:37 | [7 楼]
    我来我网·5come5 Forum » 程序员之家

    Total 0.009656(s) query 5, Time now is:11-22 14:42, Gzip enabled
    Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号