class CClass1 
{
static CMenber1  m_Menber;
}class CClass2 
{
static CMenber2  m_Menber;
}class CClass3
{
static CMenber3  m_Menber;
}class CClass4
{
static CMenber4  m_Menber;
}CClassN:CMenberN的构造顺序和析构顺序是如何的?
请N人帮忙解答

解决方案 »

  1.   

    static  有必要进行析构???
    不是在类外进行初始化的吗?所以没有析构才对啊,,你这个对象析构掉了其他的对象怎么办??强烈建议学习C++
      

  2.   

    即使要进行析构,也应该在所有对象都被析构掉后才能进行析构STATIC,,,
    学习关注中
      

  3.   

    shawnwan() ( ) 信誉:100    Blog  2006-11-22 09:06:34  得分: 0  
     
     
       static  有必要进行析构???
    不是在类外进行初始化的吗?所以没有析构才对啊,,你这个对象析构掉了其他的对象怎么办??强烈建议学习C++
      
     
    ============================================================-_-!
    静态类型成员是会自动构造和析构的,分别发生在进程生命周期的最开始和最末尾
      

  4.   

    >>> 但对静态成员中的资源回收的顺序,我怕出现
    "部分使用人员用完资源,并下班回家后,善后的服务人员会处理垃圾,服务人员处理完当时垃圾才下班.但是还有部分人员没有下边,结果工作环境到处是垃圾"
    ----------
    你可以规定使用你的垃圾回收机制的程序中禁止使用可能影响回收的静态变量,这个问题可以参考ACE的init和fini函数
    >>> 会有大量的数据对象交换,数据对象的在框架各层的缓存队列中来回迁移,导致了大量数据对象的拷贝/构造/析构行为
    ----------
    可以考虑使用支持引用计数的智能指针
      

  5.   

    >>> 会有大量的数据对象交换,数据对象的在框架各层的缓存队列中来回迁移,导致了大量数据对象的拷贝/构造/析构行为
    ----------
    可以考虑使用支持引用计数的智能指针
    ===============================================
    我现在使用了正是类似的方式,仅将对象的引用在各层次进行传递你可以规定使用你的垃圾回收机制的程序中禁止使用可能影响回收的静态变量,这个问题可以参考ACE的init和fini函数
    =========================================
    我的垃圾回收机制是由首尾的INIT和EXIT(虽然不知道ACE的机制). 我的组员可以看做我的用户,我期望我的用户使用我的组件的时候能够拥有最好的性能和易用性,并受到最少的限制
      

  6.   

    个人认为:
    静态成员在该类声明的第一个对象时被作为全局变量创建,该静态成员函有对该类对象存储区域的指针,当所有对象被析构时,指针为空,该静态成员也被自动析构,这应该由编译器实现,所有的类型包括int、char等都应该有自己的构造函数和析构函数,只不过这些函数都由编译器实现了。我刚看到静态成员一节,以上看法都是个人猜想,有人推荐一本这方面的书就好了