比如我定义了一个类CMyTime,里面只有两个int,分别表示Hour和Minute但是有时候需要把CMyTime转换成CTime,能否实现象这样的转换:CMyTime T1 ;
CTime T2 = (CTime)T1;或者:CMyTime* T1 = new CMyTime;
CTime* T2 = (CTime*)T1;谢谢!!!

解决方案 »

  1.   

    public CMyTimez:CTime{
    };
    ?
      

  2.   

    同意楼上的观点,你的CMyTime应该从CTime中派生出来,
    然后用dynamic_cast或static_cast就可以了.
    还有如果从CTime中派生出来,就不用声明什么hour,minute之类的了,
    那些东西CTime中都有!!
      

  3.   

    CMyTime  T1 ;
    CTime    T2(0, 0, 0, T1.iHour, T1.iMinute, 0);
      

  4.   

    aben456 & serverclient: 我知道,但是我是要做个比CTime小的类,而不是比它大fangcheng: 转换成CTime当然可以,只是我想能不能实现更规范的方法
      

  5.   

    试一试如此,其实是指针的定位(指针都是32位)
    CMyTime *T1 = new CMyTime;
    CTime *T2 = (CTime *)T1;
      

  6.   

    Richuen22,zswzwy : 用指针肯定是不行的,我试过的
      

  7.   

    有一个方法就是向CTime添加一个以CMyTime&为参数的构造函数.但是我没有试过