2009-02-10 94 views
0

我有3类在不同的文件之间的通信:继承的类

X 
    | 
------- 
|  | 
Y  Z 

我将创建

类Z A特定功能应该仅当被执行继承的类Y和Z.

的几个对象一些 标志变量由Y类设置。

我应该在哪里创建这个标志变量(哪个类)以及声明应该是什么样的(static/extern)?

+0

你能告诉我们更多关于X,Y和Z吗?你的问题陈述很清楚,但很难理解为什么只有Y能够设置只有Z可以读取的标志。 – 2009-04-10 18:25:54

回答

1

该标志应该在Z中,如果它只有Z受其影响。但整个事情闻起来 - 标志由类而不是实例设置。在实际情况下使用多态而不是标志。

1

我认为这是一个奇怪的设计;您将在继承的类之间创建依赖关系。

的方法(和标志变量)应在父类X.

(编辑) 细化/替换一下我上面写的, 变量可能在基类中,Y舱会设置变量(Setter),并且Z类将具有将从基类“获取”该值的方法。

0

最佳答案:Anton Gogolev说,使用模板。

(也可以使用一个私人枚举变量使用例如:的GetType()返回type.x/type.y等)

0

如果你有两个Y对象,只有一个具有标志设置?您的三个Z对象中的哪一个受到影响?这个问题表明你的设计是有缺陷的。