【发布时间】:2010-11-25 09:40:46
【问题描述】:
我不知道怎么称呼它。基本上我有一个标签小部件。它具有自动尺寸功能。问题是我不知道谁调用 setSize();我需要知道类是否调用了它,或者标签的用户是否调用了它,因为您无法调整自动调整大小的小部件的大小。我无法直接更改大小,因为 1,它不是很 OO,2 我无法访问它,因为大小在基类中。我只能覆盖 setSize() 但不知道是谁调用的,我无法过滤掉任何人。
谢谢
【问题讨论】:
标签: c++ refactoring
我不知道怎么称呼它。基本上我有一个标签小部件。它具有自动尺寸功能。问题是我不知道谁调用 setSize();我需要知道类是否调用了它,或者标签的用户是否调用了它,因为您无法调整自动调整大小的小部件的大小。我无法直接更改大小,因为 1,它不是很 OO,2 我无法访问它,因为大小在基类中。我只能覆盖 setSize() 但不知道是谁调用的,我无法过滤掉任何人。
谢谢
【问题讨论】:
标签: c++ refactoring
将实现移动到(重命名的)私有方法中,将setSize() 放入检查条件的包装器中。
【讨论】:
听起来您需要私有/受保护的覆盖。
【讨论】:
您可以创建一个私有的setSizeInternal 方法和一个公共的setSize 方法来检查条件。
【讨论】:
正如其他人所说,您需要创建一个私有/受保护的 setSize ,它可以在没有条件检查的情况下设置大小,而一个公共的 setSize 可以执行条件检查。只有在满足条件的情况下,您才会让公共调用私人
【讨论】: