【发布时间】:2018-06-05 10:05:17
【问题描述】:
我正在尝试在我的 C++ 应用程序中实现用户默认设置。 为此,我创建了一个接口类,其中包含一个函数:
class IRegisterUserDefaults
{
public:
IRegisterUserDefaults();
virtual void registerUserDefaults(){}
};
从这个接口类继承的每个类都会实现注册用户默认值的功能。
到目前为止没有问题。但是最好的称呼方式是什么? 我来自 Objective-C,在那里我可以搜索所有类并找到实现接口并在它们上调用 registerUserDefaults 函数的类。我明白虽然 C++ 没有这种程度的内省。每个类调用一次函数就足够了(从而使其成为静态的)。
目标
如果类是 IRegisterUserDefaults 的子类,那么如果该函数可以“自动”调用,那就太好了。我尝试从 IRegisterUserDefaults 构造函数调用该方法,但看起来这并没有正确调用子类函数。有没有办法做到这一点?
另外,确保每个类只调用一次的最佳方法是什么?
【问题讨论】:
-
“很想听听你的想法!”征求意见是题外话,你有什么问题?
-
你为什么要这个?我的直觉是,这对于 c++ 来说不是一个好的设计选择,但是在不知道您要解决什么问题或默认注册应该做什么的情况下,很难说清楚。是默认运行时值吗?
-
@user463035818 我想知道最好的解决方案是什么。最佳解决方案将仅通过继承 IRegisterUserDefaults 来调用适当的函数。
-
@super 我的用户默认值类似于用于绘制文本的默认字体。这需要在某个时候注册。我所追求的是一种方便的解决方案,因为我看到一个人只是忘记调用 registerUserDefaults 方法,所以我认为如果通过超类构造函数“自动”调用该方法将是理想的。
-
@Caleth 它不会,但是有办法找出存在哪些(Objective-C)类并实例化那些名称(例如)匹配某种模式或实现特定方法签名的类.
标签: c++ userdefaults