none
问一个关联类的头文件问题。 RRS feed

  • 问题

  •  有这样2个关联类
    test.h
    #pragma once
    #include "mychild.h"
    class test
    {
     public :
     mychild tt;
    }


    mychild.h
    #pragma once
    // #include "test.h"  //加入这行会造成循环包含
    class mychild
     {
       public:
       // test * parent;
       void * parent;  //所以把关联的类型变成 void *
     }

    在使用的时候,通过强制类型装换获得 parent 的类型。。
    问一下,除了这种方式外,还有没有其他的方法建立这种关联类?
    c++ 的强制类型装换,是否会严重影响执行效率,是否类似 .NET中的 装箱出箱 ?

    2009年2月23日 8:04

答案

  • try this

     mychild.h  
    #pragma once  
    // #include "test.h"  //加入这行会造成循环包含  
    class test;  
    class mychild  
     {  
       public:  
       test * parent;  
       }  
     
    • 已标记为答案 王的强 2009年2月23日 13:16
    2009年2月23日 10:24
    版主
  • 普通数据类型的强制转换就是bitwise 操作,性能与C接近。而带有虚函数和虚基类的多层继承结构会影响性能。

    • 已标记为答案 王的强 2009年2月24日 4:47
    2009年2月24日 4:11
    版主

全部回复

  • try this

     mychild.h  
    #pragma once  
    // #include "test.h"  //加入这行会造成循环包含  
    class test;  
    class mychild  
     {  
       public:  
       test * parent;  
       }  
     
    • 已标记为答案 王的强 2009年2月23日 13:16
    2009年2月23日 10:24
    版主
  • 好像可以了。。。 谢谢你啊。。。 

    下面这个问题,还能顺便给解答一下吗


    c++ 的强制类型装换,是否会严重影响执行效率,是否类似 .NET中的 装箱出箱 ?

    2009年2月23日 13:15
  • 普通数据类型的强制转换就是bitwise 操作,性能与C接近。而带有虚函数和虚基类的多层继承结构会影响性能。

    • 已标记为答案 王的强 2009年2月24日 4:47
    2009年2月24日 4:11
    版主