模板参数=void*的编译器错误 - 页 20 1...1314151617181920 新评论 Dmitry Fedoseev 2018.12.21 05:38 #191 pavlick_:按钮灯通过g 与虚拟性。 老生常谈的例子。这不是一个多态性的例子,也不是一个模式的例子。这只是一个使用bool变量的例子,其他的什么都没有(除了厚厚的一层哈士奇)。 模板是不可能取代多态性 的。 pavlick_ 2018.12.21 05:46 #192 Dmitry Fedoseev: 模板不能以任何方式取代多态性。我哪里说了不对?问题是,多态性是想取代模板。 Alexey Navoykov 2018.12.21 06:20 #193 pavlick_:我在哪里说过不这样做呢?问题是,多态性试图取代模板。确切地说,你是想用一个拐杖来代替正常的OOP方法)模板实际上只在存储数据和一些接口中需要,比如IComparable<T>。 它们几乎没有任何性能上的好处。在你的第二个例子中,编译器嵌入了一切,因为那里的一切都很明确。 pavlick_ 2018.12.21 06:28 #194 Alexey Navoykov:确切地说,你是想用一个拐杖来代替正常的OOP方法)模板实际上只在存储数据和一些接口中需要,比如IComparable<T>。 它们几乎没有任何性能上的好处。在你的第二个例子中,编译器镶嵌了所有的东西,因为那里所有的东西都是明确的。这不是我的例子,这是一个典型的依赖关系倒置的例子。不要挑剔它的简单性,它只是展示了一个想法,如果我写了一张代码,你会说 "嗯,是的,那是一个不同的东西 "吗? 模板已经成为一个拐杖,是的。.好了,我今天就到此为止吧。 Alexey Navoykov 2018.12.21 07:07 #195 顺便说一下,回到void*,我刚刚意识到,在C++中,即使是dynamic_cast 也不能用它来工作(不能编译),这是符合逻辑的,因为我们只是有一个指向内存区域的非个人指针。这就是为什么它只能被明确地投下。这就是为什么void*本身在C++中是无用的。 在MQL中一切都不同。但出于兼容性的考虑,我们应该避免对void*类型的 指针使用dynamic_cast 和delete。 1...1314151617181920 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
按钮灯通过g 与虚拟性。
老生常谈的例子。
这不是一个多态性的例子,也不是一个模式的例子。这只是一个使用bool变量的例子,其他的什么都没有(除了厚厚的一层哈士奇)。
模板是不可能取代多态性 的。
模板不能以任何方式取代多态性。
我哪里说了不对?问题是,多态性是想取代模板。
我在哪里说过不这样做呢?问题是,多态性试图取代模板。
确切地说,你是想用一个拐杖来代替正常的OOP方法)模板实际上只在存储数据和一些接口中需要,比如IComparable<T>。
它们几乎没有任何性能上的好处。在你的第二个例子中,编译器嵌入了一切,因为那里的一切都很明确。
确切地说,你是想用一个拐杖来代替正常的OOP方法)模板实际上只在存储数据和一些接口中需要,比如IComparable<T>。
它们几乎没有任何性能上的好处。在你的第二个例子中,编译器镶嵌了所有的东西,因为那里所有的东西都是明确的。
这不是我的例子,这是一个典型的依赖关系倒置的例子。不要挑剔它的简单性,它只是展示了一个想法,如果我写了一张代码,你会说 "嗯,是的,那是一个不同的东西 "吗?
模板已经成为一个拐杖,是的。.好了,我今天就到此为止吧。