【发布时间】:2026-01-08 17:00:01
【问题描述】:
我需要创建一个 MVC 架构,其中 View 和 Controller 类都已经编写为模板,如下所示:
template<class Model, class View>
class Controller { /* Implement Controller */ };
template<class Model, class Controller>
class View { /* Implement View */ };
我还有一个模型类:
class Model { /* Implement Model */ };
我无法控制如何创建模型、视图和控制器类。现在,如何实例化控制器或视图?
为了更好地解释这种情况,如果我想使用上面的 View 和 Model 类创建一个控制器(我不允许使用任何其他类),我得到:
注意:后面的 C++ 代码无效
Controller< Model, View< Model, // ad infinitum
而以下内容也是无效的:
注意:后面的 C++ 代码无效
Controller< Model, View< Model, Controller > > c;
【问题讨论】:
-
如何将any C++ 类实例化为实例?您可能需要重新考虑您要问的内容,因为它几乎可以按原样模糊不清(并且唯一远程有效的 C++ 是
Model;控制器和视图模板都缺少模板参数,我很确定这将与此相关)。 -
另外,“自我参照”是什么意思?
-
你能提供一些真实的编译代码示例吗?您显示的代码甚至不是有效的 C++。
-
小于没有被转义@jww 谢谢
-
对不起,但我看不出这是不是有效的 C++ 代码?你能解释一下这个问题吗?
标签: c++ templates model-view-controller self-reference