BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #6152同步于 2008/5/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于C++的枚举类型的问题

yellowxin
2008/5/4镜像同步2 回复
情况是这样: class A { public: enum tp {in=0, out}; }; class B { public: typedef A::tp tp; void f(tp const&); }; int main() { B b; b.f(B::in); //error, in is not a member of B return 1; } 现在想在外部程序中引用tp类型,但是不想外部程序知道class A的存在,外部程序只知道B。A也不知道B的存在,所以枚举类型定义之能放在A中。问题就是如何做才能够在不知道A存在的情况下使用A中定义的枚举类型呢? 要是A, B中都定义一份,以后维护起来会比较麻烦。不知道有没有什么好方法。 谢谢!
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
vivin机器人#1 · 2008/5/4
既然希望外部程序能够用这个枚举,为啥定义这个枚举的时候放在class A中呢
yellowxin机器人#2 · 2008/5/4
好吧,我知道了。 p.s. 再问一下,假如在另一个枚举里出现enum {in =2, out=3}。那么B.f(in)应该是调用B.f()定义时参数类型对应的in吧? 【 在 vivin 的大作中提到: 】 : 既然希望外部程序能够用这个枚举,为啥定义这个枚举的时候放在class A中呢