• C++ 局部变量的析构


    http://blog.chinaunix.net/uid-52437-id-2108747.html

    在一个函数内,申明一个局部类变量。则这个变量什么时候析构呢? 并不是在函数退出,释放栈空间时候析构消亡,而是在打括号终结时。(搞了这么多年c++,这点都没搞清楚,只能说明基础不扎实阿)。举例如下

    #include <stdio.h>
    #include <unistd.h>
    class TT
    {
            public:
            TT();
            ~TT();
    };
    TT::TT()
    {
            printf("construct ");
    }
    TT::~TT()
    {
            printf("destruct ");
    }
    int main()
    {       int n=2;
            {
                    TT t1;
                    printf("000000 ")
            } //此处析构

            return 0;
    }
    输出:
    construct
    000000
    destruct
    1111111111

    而不是
    construct
    000000
    1111111111
    destruct

    初始化的知识点

    Test::Test(int a)

      :ma(false),    //ma=false

      :mp(b)   //mp = b

    {

    }

  • 相关阅读:
    java Boolean和boolean的区别
    stack.isEmpty()和empty()
    mysql中文、英文别名排序问题,order by 关键字详解
    数组中array==null和array.length==0的区别
    7.9总结
    7.8总结
    6.25总结
    6.27总结
    6.29总结
    6.28总结
  • 原文地址:https://www.cnblogs.com/maxpak/p/4487456.html
Copyright © 2020-2023  润新知