是否有可能在MQL4中实现一个单子模式。 - 页 5 12345678910 新评论 Viktar Dzemikhau 2014.09.03 08:28 #41 sergeev: 这是什么?这是你要求的。一个类的实例......有一个外部修改器。当然,这是很荒谬的。但是...这就是你所说的。但我觉得这没有必要。sergeev: 但是把一个结构的实例做成外置的不是一个好主意吗?我完全不明白extern与此有什么关系?我不需要 "制造 "一些可以共享的数据,所以它们可以被纳入任何其他的类中。而且这些变量在程序执行 过程中不能丢失其数值,即它们必须是静态的。你在告诉我关于外部的事情。为了什么? --- 2014.09.03 08:40 #42 hoz: 这是你要求的。一个类的实例......有一个外部修改器。当然,这是很荒谬的。但是... 它根本没有编译吗?我不需要 "制造 "一些数据来分享。 像你需要的? Viktar Dzemikhau 2014.09.03 08:54 #43 sergeev:它根本没有编译吗?我还没有检查。因为需要的东西还没有实施。sergeev: 你需要什么?我将重复我需要的东西...有一个结构,其成员在程序执行 期间必须保存其值,但当访问任何使用该结构的类的任何方法时,成员可以被修改。我理解他们需要静态的。这些成员应该在一个单一的实例中。这个结构的成员将被许多类和专家顾问本身所使用。以前是这样的。struct Symbol_Properties { static datetime gdt_Quote; // Время поступления последней котировки static double gda_Price [2]; // Текущие рыночные цены (0 - Bid, 1- Ask) static double gd_Spread; // Размер спреда в пунктах static double gd_Swap; // Своп static double gd_Comission; // Комиссия static double gd_Pt; // Величина одного пункта static int gi_Digits; // Количество знаков в цене после запятой static int gi_StopLevel; // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктах static int gi_FreezLevel; // Уровень заморозки ордеров в пунктах }; Symbol_Properties::gdt_Quote = 0; Symbol_Properties::gda_Price [2] = {0.0, 0.0}; Symbol_Properties::gd_Spread = 0; Symbol_Properties::gd_Swap = 0; Symbol_Properties::gd_Comission = 0; Symbol_Properties::gd_Pt = 0; Symbol_Properties::gi_Digits = 0; Symbol_Properties::gi_StopLevel = 0; Symbol_Properties::gi_FreezLevel = 0;但是,在这种情况下,引用这种变量是不方便的,因为 "名称 "很长。I.e:Symbol_Properties::gd_Pt = 0;如何实现这一点? --- 2014.09.03 09:24 #44 hoz:让我重复一下我需要的东西...有一个结构,其成员在程序执行期间必须保存其值,但当访问任何使用该结构的类的任何方法时,成员可以被修改。我理解他们需要静态的。这些成员应该在一个单一的实例中。这个结构的成员将被许多类和专家顾问本身所使用。指向单一创建的变量的问题是什么? Viktar Dzemikhau 2014.09.03 09:44 #45 并以STRUCTURE NAME.MEMBER NAME来指代它们?但是否能保证这个变量在运行时 不会丢失其当前值? --- 2014.09.03 10:14 #46 hoz:并通过STRUCTURE NAME.MEMBER NAME来引用它们 ?变量名称。成员名称。但是否能保证这个变量在程序执行过程中不会丢失其当前值? 例如,总部? 你在EA中是否有多线程执行?你写在那里的东西,为什么会失去? Sergey Dzyublik 2014.09.03 10:26 #47 в чем проблема обращаться к единственной созданной переменной?每个人都有权利生活在自己的幻想世界里。但要摧毁用户的世界 是异常困难 的。因为你无法进入他的大脑,搞清楚他在想象什么。"不会失去其目前的价值"- 你认为变量的产生是为了失去它们的价值?这在现实中。变量有一个 范围,一个存储期限和一个联系。了解它是什么:哪个变量有什么范围,什么时候可见,什么时候创建,什么时候销毁,在什么地方和什么时候可以传递给它。简要介绍一下存储寿命。 静态(在所有函数之外声明的变量或带有静态指定符)--死亡时间=程序存在的终止自动(一个在函数中声明的变量)--死亡时间=离开创建它的函数的地方动态(使用关键字new创建的变量)- 死亡时间=使用关键字delete Viktar Dzemikhau 2014.09.03 11:12 #48 sergeev:你在EA中是否有多线程?你放在那里的东西就会在那里,为什么要失去呢? 打开这里的 文档,看到的是。//+------------------------------------------------------------------+ //| Класс "Анализатор текстов" | //+------------------------------------------------------------------+ class СParser { public: static int s_words; static int s_symbols; //--- конструктор и деструктор Parser(void); ~Parser(void){}; }; ... //--- инициализация статических членов класса Parser на глобальном уровне int CParser::s_words=0; int CParser::s_symbols=0;如果类或结构变量在程序执行过程中不会丢失它们的值,为什么它们在这里被声明为静态变量?他们是在公共部分,你可以说是在结构... Dmitry Fedoseev 2014.09.03 11:32 #49 hoz:打开这里的 文档,看到的是。如果类或结构变量在运行时不会丢失它们的值,为什么 它们在这里被声明为静态?他们是在公共部分,你可以说是在结构... 然后...请阅读给你的链接中的第二句话。 类中的静态与函数中的静态含义略有不同。 Sergey Dzyublik 2014.09.03 11:34 #50 hoz:如果类或结构变量在运行时不会丢失它们的值,为什么它们在这里被声明为静态变量?他们在公共部分,你可以说是在结构... 你要么是愚昧无知,要么是愚昧无知,抱歉我直言不讳,但这是白纸黑字写的。例如,我们有一个用于解析文本 的CParser类,我们需要计算所处理的单词和字符的总数。 只需声明 所需的类成员为静态成员并 全局初始化即可。然后该类的所有实例 在工作时将使用通用的单词和字符计数器。凡是有提及的地方。类或结构变量在运行时丢失其值它说,保留OOP原则,不创建全局变量,我们可以在静态类成员的帮助下计算一些单词的数量。它(静态类成员) 是作为一个单一的实例被创建的,并不取决于有多少个特定类的对象被创建。 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这是什么?
这是你要求的。一个类的实例......有一个外部修改器。当然,这是很荒谬的。但是...
这就是你所说的。但我觉得这没有必要。
但是把一个结构的实例做成外置的不是一个好主意吗?
我完全不明白extern与此有什么关系?我不需要 "制造 "一些可以共享的数据,所以它们可以被纳入任何其他的类中。而且这些变量在程序执行 过程中不能丢失其数值,即它们必须是静态的。你在告诉我关于外部的事情。为了什么?
这是你要求的。一个类的实例......有一个外部修改器。当然,这是很荒谬的。但是...
它根本没有编译吗?
它根本没有编译吗?
我还没有检查。因为需要的东西还没有实施。
你需要什么?
我将重复我需要的东西...有一个结构,其成员在程序执行 期间必须保存其值,但当访问任何使用该结构的类的任何方法时,成员可以被修改。我理解他们需要静态的。这些成员应该在一个单一的实例中。这个结构的成员将被许多类和专家顾问本身所使用。
以前是这样的。
但是,在这种情况下,引用这种变量是不方便的,因为 "名称 "很长。I.e:
Symbol_Properties::gd_Pt = 0;
如何实现这一点?
让我重复一下我需要的东西...有一个结构,其成员在程序执行期间必须保存其值,但当访问任何使用该结构的类的任何方法时,成员可以被修改。我理解他们需要静态的。这些成员应该在一个单一的实例中。这个结构的成员将被许多类和专家顾问本身所使用。
指向单一创建的变量的问题是什么?
并以STRUCTURE NAME.MEMBER NAME来指代它们?
但是否能保证这个变量在运行时 不会丢失其当前值?
并通过STRUCTURE NAME.MEMBER NAME来引用它们 ?
变量名称。成员名称。
但是否能保证这个变量在程序执行过程中不会丢失其当前值?
例如,总部?
你在EA中是否有多线程执行?
你写在那里的东西,为什么会失去?
每个人都有权利生活在自己的幻想世界里。
但要摧毁用户的世界 是异常困难 的。
因为你无法进入他的大脑,搞清楚他在想象什么。
"不会失去其目前的价值"- 你认为变量的产生是为了失去它们的价值?
这在现实中。
变量有一个 范围,一个存储期限和一个联系。
了解它是什么:哪个变量有什么范围,什么时候可见,什么时候创建,什么时候销毁,在什么地方和什么时候可以传递给它。
简要介绍一下存储寿命。
静态(在所有函数之外声明的变量或带有静态指定符)--死亡时间=程序存在的终止
自动(一个在函数中声明的变量)--死亡时间=离开创建它的函数的地方
动态(使用关键字new创建的变量)- 死亡时间=使用关键字delete
你在EA中是否有多线程?
你放在那里的东西就会在那里,为什么要失去呢?
打开这里的 文档,看到的是。
如果类或结构变量在程序执行过程中不会丢失它们的值,为什么它们在这里被声明为静态变量?
他们是在公共部分,你可以说是在结构...
打开这里的 文档,看到的是。
如果类或结构变量在运行时不会丢失它们的值,为什么 它们在这里被声明为静态?
他们是在公共部分,你可以说是在结构...
然后...请阅读给你的链接中的第二句话。
类中的静态与函数中的静态含义略有不同。
如果类或结构变量在运行时不会丢失它们的值,为什么它们在这里被声明为静态变量?
他们在公共部分,你可以说是在结构...
你要么是愚昧无知,要么是愚昧无知,抱歉我直言不讳,但这是白纸黑字写的。
例如,我们有一个用于解析文本 的CParser类,我们需要计算所处理的单词和字符的总数。 只需声明 所需的类成员为静态成员并 全局初始化即可。然后该类的所有实例 在工作时将使用通用的单词和字符计数器。
凡是有提及的地方。
类或结构变量在运行时丢失其值
它说,保留OOP原则,不创建全局变量,我们可以在静态类成员的帮助下计算一些单词的数量。
它(静态类成员) 是作为一个单一的实例被创建的,并不取决于有多少个特定类的对象被创建。