科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道对象生存方式

对象生存方式

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在c++中,有四中方法可以产生一个对象........

作者:ghost 来源:CSDN 2007年9月28日

关键字: ghost C++ 对象

  • 评论
  • 分享微博
  • 分享邮件
在c++中,有四中方法可以产生一个对象。

         第一种方法是在堆栈(stack)中产生它:

         void   MyObject()

          {

                     Typename    object ;                //在堆栈中产生object对象

            }

        第二种方法是在堆(heap)中产生它:

        vvoid   MyObject()

          {

                    .............................

                     Typename *   object = new   Typename ( ) ;                //在堆中产生object对象

            }

         第三种方法是产生一个全局对象(同时也必然是一个静态对象):

            Typename    object ;       //在任何函数范围之外做此操作 

        第四种方法是产生一个局部静态对象:

          void   MyObject()

          {

                     static   Typename    object ;                //在函数范围(scope)之内的一个objec静态t对象

                    ............................

            }

          不论哪种做法C++都会产生一个针对Typename构造函数的调用操作。前两种情况,C++在配置内存(来自static或heap)之后立刻产生一个隐藏的构造函数的调用。第三种情况,由于对象实现于任何“函数活动范围“之外,所以构造函数操作必须依靠startup代码(更早于程序进入点main或WinMain执行起来的代码)帮忙,由C++编译器提供。

         第四中情况(局部静态对象)相当类似C语言中的静态局部对象,只会有一个实例(instance)产生,而且在固定的内存上(既不是stack也不是heap)。它的构造函数在控制权第一次转移带其声名处时被调用。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1561151

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章