是否有可能在MQL4中实现一个单子模式。 - 页 8

 
ALXIMIKS:

我忘记了封装的问题。而且可以删除。而且这里没有恒定的指针)。总之,单子不是最好的模式。

但至少有一些不错的模板。对于我可能只会梦想的课程。


 
Scriptong:
我们在谈论静态类成员。此外,在我的例子中,m_a是一个私人成员。而这样的类成员只能从类的实例中访问。所以,变量的值不能在代码中的任何地方被改变,除了在类的实例上。这是一个编写安全代码的问题,它消除了许多未来可能出现的错误。


好吧,我把公共的想法,否则,删除它将改变相对于静态 - 从类内 - 没有什么?

然而,不能静态地声明类成员将导致需要程序中全局地声明这些数据

这个话题没有得到回答。

 
sergeev:

被吹捧的是MQL的酷。

不求甚解

看来,你根本就不应该费心去读 "英勇的文档"。因为一切都错了。然后一些 "聪明人 "出来了,就像上面的几个帖子,开始讨论。而现在的情况是,我非常细心。如果我读到它是关于一个特定类型的数据,我就这么认为。如果这是一个疏忽,我应该承认它。
 
ALXIMIKS:

有人大喊大叫地说是单子

是否有计划将模板扩展到类和显式参数设置?否则就是指责我,告诉我,我想要的太多了。

P.S.,Singleton 里面声明SomeClass类会 更正确(在这种情况下,你只能创建一个SomeClass的实例),但这更清楚,虽然不正确


我以前都见过。我想知道如何将其具体应用于我的结构。不仅仅是看到它从某个来源复制过来。我也可以这样做)

而总的来说,在伊戈尔的 建议下,我明白这可能对我没有什么用。所以我不再谈论这种模式了。至于躲躲闪闪的文档,与C++的文档不同,这显然是事实。但是,同样,我们对此也无能为力。

我们现在至少要尽可能多地写。直到有了替代方案。

 

亲爱的先生,这个帖子有什么问题?

ALXIMIKS 03.09.2014 15:34 #
hoz:

如果类或结构变量在程序执行过程中不会丢失它们的值,那么为什么它们在这里被声明为静态变量?

他们在公共部分,你可以说,作为在结构...


你要么是愚昧无知,要么是愚昧无知,对不起,我直言不讳,这是白纸黑字写的。

例如,我们有一个CParser,用于解析文本,我们需要计算所处理的单词和字符的总数只需将 所需的类成员声明为静态,并 全局初始化 它们。然后,该类的所有实例 在工作时将使用单词和字符的共同计数器

凡是有提及的地方。

类或结构变量在运行时丢失其值

它说,保留OOP原则,不创建全局变量,我们可以在静态类成员的帮助下计算一些单词的数量。

它(静态类成员)是作为一个单一的实例创建的,不依赖于一个给定类的创建对象的数量。

 

如何对结构和阶级进行不可理解的攻击,以及你自己编造的问题。

关注你不了解OOP和存储期限的基本知识,作为一般变量属性的复合概念?

 
ALXIMIKS:

亲爱的先生,这个帖子有什么问题?

如果你不识字,那是你的问题。以下是我所问的一句话。如果我在某个地方拼错了,或者匆忙中写错了什么,那是因为像你这样的 "聪明人 "喋喋不休地唠叨。如果你知道如何阅读,这里有一个专门为特别无知的人提供的帖子的永久链接https://www.mql5.com/ru/forum/152923/page6#987432

 
帖子中的问题是什么 ??????????????我不识字,如果你识字,请回答这个问题)
 
struct A{
   static struct B{
      int x;
      int y;
   }Single;
};


void OnStart()
{
        A::Single.x = 5;
        Alert(A::Single.x);
}
 

两天来,你还没有弄清楚静态在研究和课堂上的行为是不同的吗?

这些结构似乎取自于C,只是在继承性方面有一点提高。

至于班级,则是全面的。

正因为如此,你不必在结构中为静态变量保留空间

struct A{
   static  int x;
};

但你必须在课堂上保留空间,否则你就不会。

class B{
public:
   static  int x;
};
int B::x = 0;