我有3类在不同的文件:

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

我将创建继承的类Y和Z的多个对象。

类Z A特定功能应该仅当一些的标志变量由Y级设置来执行。

我应该在哪里创建这个标志变量(类)应该是什么的声明是这样的(静态/ EXTERN)?

有帮助吗?

解决方案

考虑模板方法作为臭名昭著标志的替代品。

其他提示

在标记应该是在Z,如果它是仅由真实它实现ž。但是,整个事情的气味 - 标志是由类,而不是实例设置。使用多态而不是标志,其中实际的。

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

的方法(和标志变量)应该是在父类中X

(编辑) 细化/替换一下我上面写的, 变量可以是在基类时,Y类将设置变量(设置器)和Z类将有这将“获取”从基类中的值的方法。

最佳答案:什么安东Gogolev说,使用的模板

(否则使用私有枚举变量使用例如:的GetType(),它返回type.x / type.y等)

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top