【问题标题】:Preventing others from calling a function based on a condition, but always allowing the class to call it?防止其他人根据条件调用函数,但始终允许类调用它?
【发布时间】:2010-11-25 09:40:46
【问题描述】:

我不知道怎么称呼它。基本上我有一个标签小部件。它具有自动尺寸功能。问题是我不知道谁调用 setSize();我需要知道类是否调用了它,或者标签的用户是否调用了它,因为您无法调整自动调整大小的小部件的大小。我无法直接更改大小,因为 1,它不是很 OO,2 我无法访问它,因为大小在基类中。我只能覆盖 setSize() 但不知道是谁调用的,我无法过滤掉任何人。

谢谢

【问题讨论】:

    标签: c++ refactoring


    【解决方案1】:

    将实现移动到(重命名的)私有方法中,将setSize() 放入检查条件的包装器中。

    【讨论】:

      【解决方案2】:

      听起来您需要私有/受保护的覆盖。

      【讨论】:

        【解决方案3】:

        您可以创建一个私有的setSizeInternal 方法和一个公共的setSize 方法来检查条件。

        【讨论】:

          【解决方案4】:

          正如其他人所说,您需要创建一个私有/受保护的 setSize ,它可以在没有条件检查的情况下设置大小,而一个公共的 setSize 可以执行条件检查。只有在满足条件的情况下,您才会让公共调用私人

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-04-13
            • 1970-01-01
            相关资源
            最近更新 更多