模板参数=void*的编译器错误 - 页 18 1...11121314151617181920 新评论 Stanislav Dray 2018.12.21 01:25 #171 Igor Makanu:目前,我想用一种简单的方法将VS表格附加到.dll上,以达到MT5的目的 ))))- 我想把按钮点击处理程序包装在一个类中,通过遍历处理程序函数的指针数组来调用它们,我想在EA主代码中可以写出与VS中相同的函数名称,即button2_Click() ....button2_Click() SZY: 这是一个EOP 问题))))无意冒犯,但这让我想起了很多。 pavlick_ 2018.12.21 01:41 #172 Ilya Malev:- 在动态OOP中创建自动结构是无稽之谈所以堆栈对象:myclass obj;是无稽之谈?那么我就是一个盘口高手 :) Ilya Malev 2018.12.21 01:45 #173 pavlick_:所以,堆栈对象:myclass obj;是无稽之谈?所以,我是一个手工艺人 :)有各种各样的任务。你可以练习修辞很长一段时间,如果你不描述具体的任务,你可以想出任何东西...... 是的,"可堆叠"(自动你的意思?)对象基本上是无稽之谈。以我的拙见,这绝不是真理,当然也不是最后的例子...... Ilya Malev 2018.12.21 01:54 #174 一个小丑需要一个不执行OOP主要功能的对象--多态性 属性?你不会将任何具有不同属性的对象根据内容分配给这样一个变量。你根本无法将另一个对象映射到列表中的这个 "变量"。你为什么需要对象呢? 用结构来代替不是更好吗?也许是因为µl结构不能返回对自己的引用...并与他们一起开始了一个黑暗的东西,不断地创造-毁灭-自我复制等等。 pavlick_ 2018.12.21 02:39 #175 Ilya Malev: 你想要一个不满足OOP主要功能的对象--多态性 属性?你不会将任何具有不同属性的对象根据内容分配给这样一个变量。你根本无法将另一个对象映射到列表中的这个 "变量"。你为什么需要对象呢? 用结构来代替不是更好吗?也许是因为µl结构不能返回对自己的引用...并与他们一起开始了一个黑暗的东西,不断地创造-毁灭-自我复制等等。 如何在没有多态性的情况下生活...如果我告诉你,在>90%的情况下我们可以不使用多态性呢?就拿 "SOLID依赖性反转原则 "来说,如果我们是体面的职业经理人,我们应该创建抽象,到处都是虚拟方法(当然,这需要高额的开销)。C#高手会这样写:https://pro-prof.com/forums/topic/dependency-inversion-principle。 或者我们可以采用模板,写一些类似的东西。 class Lamp { public: void activate(); void deactivate();}; template <typename T> class Button { Button(T& switchable) : _switchable(&switchable) { } void toggle() { if (_buttonIsInOnPosition) { _switchable->deactivate(); _buttonIsInOnPosition = false; } else { _switchable->activate(); _buttonIsInOnPosition = true; } } private: bool _buttonIsInOnPosition{false}; T* _switchable; } int main() { Lamp l; Button<Lamp> b(l) b.toggle();} 按钮也是独立于细节的,没有所有的多态性和接口。多态性有它自己的利基,但它比他们说的要窄得多。 ZS:嗯,没有人禁止它。 derived1 obj1; baseclass *p1 = &obj1; derived2 obj2; baseclass *p2 = &obj2; pass_through_generalized_algoritm(p1); pass_through_generalized_algoritm(p2); [CLOSED] : Compiler bug 面板和对话框 - CButton 面板和对话框 - CBmpButton Ilya Malev 2018.12.21 02:44 #176 当然,我们可以不使用多态性,但在这种情况下,使用简单的结构 而不是对象要诚实和合理得多,否则我们就是用显微镜来钉。更准确地说,在µl5的情况下,我们宁可绕过不允许完全使用非对象结构的 "实现特性"(与对象不同,不可能向它们传递指针)。这完全是一个不同的问题,它不再是OOP,而只是OO。 Ilya Malev 2018.12.21 02:48 #177 pavlick_: ZS:嗯,没有人禁止它。 没有人禁止各种各样的拐杖和示意图,但为什么?例如:当你的自动物体在你最不期望的时候突然自毁,这将会很有趣,不是吗? Ilya Malev 2018.12.21 02:53 #178 OOP的意义不在于使用你选择的方法来按下按钮,你一样可以通过模板或函数指针来实现,而只是对系统的任何对象应用方法,如列表,允许自我组织成列表结构,并在适当的时候创建任意的选择,不需要任何像CArrayObj 等的拐杖和相关的麻烦,重载选择、查询、比较、排序等方法。(甚至是克隆/复制,当每个对象可以在没有你的参与下 决定它是否要被复制到列表/数组中,如果要复制,那么如何复制)。 pavlick_ 2018.12.21 02:57 #179 Ilya Malev:没有人禁止编造拐杖和示意图,但为什么?例如:当你的自动对象在你最不期望的时候突然毁掉自己,这将是很有趣的,不是吗?因为堆栈对象要比堆(内存分配)中的对象快得多。自我毁灭?- 这是新的东西:)。但有时当然是必要的--例如,对象的数量只有在运行时才知道。 ZS:否则你可能会更舒服,这是个人问题。 pavlick_ 2018.12.21 03:00 #180 Ilya Malev: OOP的意义不在于使用你所选择的方法来按下按钮,你一样可以通过模板或函数指针来实现,而只是对系统的任何对象应用列表等方法,这些方法允许自我组织成列表结构,并在适当的时候创建任意的选择,而不需要像CArrayObj等任何拐杖和相关的麻烦,重载选择、查询、比较、排序等方法。(甚至是克隆/复制,当每个对象可以在没有你的参与 下决定是否将其复制到列表/数组中,以及如果要复制,如何复制)。我写道--多态性 有自己的利基,我没有争论。但实践表明(至少是我个人),这并不那么重要。我更倾向于用模板来解决问题。 1...11121314151617181920 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
目前,我想用一种简单的方法将VS表格附加到.dll上,以达到MT5的目的 ))))- 我想把按钮点击处理程序包装在一个类中,通过遍历处理程序函数的指针数组来调用它们,我想在EA主代码中可以写出与VS中相同的函数名称,即button2_Click() ....button2_Click()
SZY: 这是一个EOP 问题))))
无意冒犯,但这让我想起了很多。
- 在动态OOP中创建自动结构是无稽之谈
所以堆栈对象:myclass obj;是无稽之谈?那么我就是一个盘口高手 :)
所以,堆栈对象:myclass obj;是无稽之谈?所以,我是一个手工艺人 :)
有各种各样的任务。你可以练习修辞很长一段时间,如果你不描述具体的任务,你可以想出任何东西......
是的,"可堆叠"(自动你的意思?)对象基本上是无稽之谈。以我的拙见,这绝不是真理,当然也不是最后的例子......你想要一个不满足OOP主要功能的对象--多态性 属性?你不会将任何具有不同属性的对象根据内容分配给这样一个变量。你根本无法将另一个对象映射到列表中的这个 "变量"。你为什么需要对象呢? 用结构来代替不是更好吗?也许是因为µl结构不能返回对自己的引用...并与他们一起开始了一个黑暗的东西,不断地创造-毁灭-自我复制等等。
如何在没有多态性的情况下生活...如果我告诉你,在>90%的情况下我们可以不使用多态性呢?就拿 "SOLID依赖性反转原则 "来说,如果我们是体面的职业经理人,我们应该创建抽象,到处都是虚拟方法(当然,这需要高额的开销)。C#高手会这样写:https://pro-prof.com/forums/topic/dependency-inversion-principle。 或者我们可以采用模板,写一些类似的东西。
public:
void activate();
void deactivate();
};
template <typename T>
class Button {
Button(T& switchable)
: _switchable(&switchable) {
}
void toggle() {
if (_buttonIsInOnPosition) {
_switchable->deactivate();
_buttonIsInOnPosition = false;
} else {
_switchable->activate();
_buttonIsInOnPosition = true;
}
}
private:
bool _buttonIsInOnPosition{false};
T* _switchable;
}
int main() {
Lamp l;
Button<Lamp> b(l)
b.toggle();
}
按钮也是独立于细节的,没有所有的多态性和接口。多态性有它自己的利基,但它比他们说的要窄得多。
ZS:嗯,没有人禁止它。
ZS:嗯,没有人禁止它。
没有人禁止各种各样的拐杖和示意图,但为什么?例如:当你的自动物体在你最不期望的时候突然自毁,这将会很有趣,不是吗?
没有人禁止编造拐杖和示意图,但为什么?例如:当你的自动对象在你最不期望的时候突然毁掉自己,这将是很有趣的,不是吗?
因为堆栈对象要比堆(内存分配)中的对象快得多。自我毁灭?- 这是新的东西:)。但有时当然是必要的--例如,对象的数量只有在运行时才知道。
ZS:否则你可能会更舒服,这是个人问题。
OOP的意义不在于使用你所选择的方法来按下按钮,你一样可以通过模板或函数指针来实现,而只是对系统的任何对象应用列表等方法,这些方法允许自我组织成列表结构,并在适当的时候创建任意的选择,而不需要像CArrayObj等任何拐杖和相关的麻烦,重载选择、查询、比较、排序等方法。(甚至是克隆/复制,当每个对象可以在没有你的参与 下决定是否将其复制到列表/数组中,以及如果要复制,如何复制)。
我写道--多态性 有自己的利基,我没有争论。但实践表明(至少是我个人),这并不那么重要。我更倾向于用模板来解决问题。