• 4070阅读
  • 4回复

请教一个关于枚举的问题。 [复制链接]

上一主题 下一主题
离线hxcan
 

只看楼主 倒序阅读 楼主  发表于: 2009-05-07
我用的QT4.5.1
我的代码中有两个类ClassA、ClassB,它们都是继承自QGraphicsItem。
现在我想有一个枚举来区分这两个类的实体,就是通过这样的调用:QGraphicsItem::GetSubClassType(),返回的枚举表示出这个实体是ClassA的实体还是ClassB的实体。怎么样定义出一个让ClassA和ClassB都可见的枚举呢?如果在ClassA与ClassB的定义内部同时定义的话,以后可能改了一处但忘了另一处。
本座已达到法定娶亲年龄,欲购从速,价格面谈。
杀人容易爱人难。
作为一个太极美术工程师,我深刻地感受到:世风日下、人心不古。
http://StupidBeauty.com/Blog
离线sunqing

只看该作者 1楼 发表于: 2009-05-07
你可以再父类QGraphicsItem中定义一个纯虚函数GetSubClassType(),在继承类ClassA、ClassB分别重写这个函数,对ClassA、ClassB实例化了后,也可以调用GetSubClassType()的啊。
I am starving!
离线hxcan

只看该作者 2楼 发表于: 2009-05-08
引用第1楼sunqing于2009-05-07 18:33发表的  :
你可以再父类QGraphicsItem中定义一个纯虚函数GetSubClassType(),在继承类ClassA、ClassB分别重写这个函数,对ClassA、ClassB实例化了后,也可以调用GetSubClassType()的啊。

嗯,多谢了!我昨天想了想,也准备这么做。不过我不准备改动Qt自带的库。准备用一个类ClassAOrB来继承QGraphicsItem,定义一个纯虚函数,再由ClassA与ClassB来继承ClassAOrB。这样的话那个枚举是不是该定义在ClassAOrB里面?
本座已达到法定娶亲年龄,欲购从速,价格面谈。
杀人容易爱人难。
作为一个太极美术工程师,我深刻地感受到:世风日下、人心不古。
http://StupidBeauty.com/Blog
离线sbtree
只看该作者 3楼 发表于: 2009-05-08
QGraphicsItem本身就有这样的函数type(),只要你的子类重新实现就行了
windows 7 + VC++2008 + Qt4.5.2
离线tianykun
只看该作者 4楼 发表于: 2009-05-08
enum { Type = UserType + 1 };

    int type() const
    {
        // Enable the use of qgraphicsitem_cast with this item.
        return Type;
    }
快速回复
限100 字节
 
上一个 下一个