struct Symbol_Properties
{
staticdatetime gdt_Quote; // Время поступления последней котировкиstaticdouble gda_Price [2]; // Текущие рыночные цены (0 - Bid, 1- Ask)staticdouble gd_Spread; // Размер спреда в пунктахstaticdouble gd_Swap; // Свопstaticdouble gd_Comission; // Комиссияstaticdouble gd_Pt; // Величина одного пунктаstaticint gi_Digits; // Количество знаков в цене после запятойstaticint gi_StopLevel; // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктахstaticint gi_FreezLevel; // Уровень заморозки ордеров в пунктах
};
int Symbol_Properties::gdt_Quote = 0;
int Symbol_Properties::gda_Price = 0;
int Symbol_Properties::gd_Spread = 0;
int Symbol_Properties::gd_Swap = 0;
int Symbol_Properties::gd_Comission = 0;
int Symbol_Properties::gd_Pt = 0;
int Symbol_Properties::gi_Digits = 0;
int Symbol_Properties::gi_StopLevel = 0;
int Symbol_Properties::gi_FreezLevel = 0;
如果你不知道基础知识,我们还能谈什么守护神,你甚至不能正确地创建一个静态类字段。
(在hubrabs上有很多关于singleton的文章,有什么用,怎么用,有什么问题)。
是单子还是静态类?使用单子模式
(Hubra上有很多关于singleton的文章,以及它的用途,如何使用,还有它的问题)
单子类还是静态类?使用Singleton模式。
你认为我没有遇到过这种情况吗?我还没有完全弄清楚它是如何工作的。事情是这样的。但事实证明,我不需要一个单子。所以我就用静态成员来做。
如果你不知道基础知识,我们怎么能谈论父权,你甚至不能正确地创建一个静态类字段。
如果你知道怎么做,你可以纠正它。昨天我根据文件写了。但也有很多错误。像这样。
下一步是什么?
我扔错了。总之,目前的版本在这里是正确的。
我想现在我必须用这么长的名字来指代每个静态变量?
Symbol_Properties::gd_Spread = 0;
还是更容易实现,在描述了变量初始化 结构后,当它被初始化 时,相应的静态成员应该被分配给某个类型的变量。
然后在代码中通过这个变量引用相应的静态变量,对吗?
是的,嗯...最主要的是,瓦迪姆 知道 :)))))
是的,这就是正常的那种对话。
问:我的朋友向我推荐了一些糖果。这正是我所需要的!
我:(不解...这与糖果有什么关系?也许B要去参加朋友的生日聚会,或者想请孩子们吃饭,也许是他自己的或别人的?也许他去做生意了,现在正在卖糖果。也许这是白俄罗斯的最后一种糖果,B现在是垄断者。如果B错过了甜食怎么办?在 "为什么要吃糖,怎么吃 "这个问题上,我脑子里还闪过很多其他想法。再一次,像以前对B那样,我的心灵感应能力让我失望。没有想到什么)。
没有任何线索。
1.这一切是为了什么?
2.有两种方法可以访问一个类的静态字段(结构是默认和继承的公共访问类)。
(a) 通过类的命名空间--例如,Symbol_Properties::gd_Spread
(double Spread = Symbol_Properties::gd_Spread) -Spread值等于Symbol_Properties类中的gd_Spread。
(double Spread = Symbol_Properties::gd_Spread =0)来自Symbol_Properties类 的gd_Spread 值,Spread值 变成等于0
b) 创建一个类的对象(例如,Symbol_Properties obj;),并通过这个对象把它作为类的一个通常的字段来引用。
(double Spread = obj.gd_Spread)
(double Spread = obj.gd_Spread =0)
1.这一切是为了什么?
方便...毕竟,如果这些变量是在单个实例中使用,我为什么要创建一个对象呢?此外,在引用一个变量时,如果VARIABLE.VARIABLE NAME,阅读代码 会更方便。
2.有两种方法可以访问类的静态字段(结构是一个默认为公共访问的类,并有继承权)。
(a) 通过类的命名空间--例如,Symbol_Properties::gd_Spread
(double Spread = Symbol_Properties::gd_Spread) -Spread值等于Symbol_Properties类中的gd_Spread。
(double Spread = Symbol_Properties::gd_Spread =0)- 来自Symbol_Properties 类的gd_Spread 值,Spread值 变为等于0。
正是如此!这就是我这样做的原因。我立即将指向该结构变量的变量初始化为零,然后将其永久地保存在内存中。这是符合逻辑的,因为这些变量是在一个实例中需要的。这就是为什么在这种情况下没有理由创建不同的对象。毕竟,它是符合逻辑的...你不同意我的观点吗?
b) 创建一个类对象(如Symbol_Properties obj;),并通过这个对象将其作为一个普通的类字段来引用。
STATE VARIABLE 没有让我满意,因为它们被用于不同的类别。所以我把它们归类在一起。
不喜欢常量,因为常量不会改变其值,而这些变量应该能够改变其值。