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

 
ALXIMIKS:


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

不,不...你就是那个慢吞吞的人!
为什么?因为你不识字。

现在我引用一下。

ALXIMIKS

它说,保留OOP原则,不创建全局变量,我们可以用静态类成员来计算一些字的数量。

(静态类成员)是作为一个单一的实例被创建的,并不依赖于该类的多少个对象被创建。

我需要同样的东西,只是从结构上。还是难以理解?有多少次被问及结构与班级有什么不同,又有多少次被回答说几乎没有什么不同。差异非常小。至少,至少在C++中是这样的。我曾经在一个有很多专业人士的论坛上问过这个问题。为什么这里会有这样的区别,这是一个问题。

我从一开始就说,我需要这些变量在一个单一的实例中。还是很难读懂?

hoz:

让我重复一下我需要的东西。有一个结构,其成员必须在运行时存储其值,但当任何使用该结构的类的任何方法被访问时,其成员可以被修改。我理解他们需要静态的。这些成员应该在 一个单一的实例这个结构的成员将被许多类使用,也被专家顾问本身使用。

"聪明人" 注意到区别了吗?p.s.以红色标示。
 

关于阶级区分和结构的文件,请阅读。再次为 "聪明人 "ALXIMIKS 在这里。

类与结构有许多不同之处。

  • 在声明中使用了关键词class。
  • 默认情况下,所有的类成员都有访问指定符private,除非另有规定。除非另有规定,结构成员的默认访问类型是公共的。
  • 类对象总是有一个虚拟函数 表,即使在类中没有声明虚拟函数。结构不能有虚拟函数。
  • new 操作符可以应用于类对象;这个操作符不能应用于结构。
  • 类只能继承 于类;结构只能继承于结构。

有什么关于静态的东西吗?

 

维克多,这很重要!:-(

你已经被告知如何做,做什么,已经说了好几遍了。

你为什么不开始进入它呢?

 
为什么呢,还不如吐口水,大喊有成百上千的白痴在迎面的车道上行驶。
 
阅读并希望得到一张图案的截图(?)....用于收集...
 
hoz:

打开这里的 文档,看到的是。

如果类或结构变量在运行时不会丢失它们的值,为什么它们在这里被声明为静态?

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

回到你的公羊身边。

你想要什么?

 
sergeev:

你想要什么?



读懂马努斯

不能静态地声明类成员将导致需要在全局程序层面声明这些成员

我们在谈论阶级和结构。从我上面写的来看,根据文档,类和结构之间是有区别的,但显然这不是关于你能不能使用静态 修改器的问题。

Отсутствие возможности объявлять статически члены класса привело бы к необходимости объявлять эти данные на глобальном уровне программы.

有这样的事情吗?是的,有!

更进一步。

这将切断数据和它的类之间的关系,也不符合基本的OOP范式,即在一个类中结合数据和方法来处理它。静态成员允许类的数据存在于类的范围内,这些数据不是特定于单个实例的。

由于静态类成员是与实例无关的,对它的引用如下

class_name::variable

以下是我需要做的事情。 我的结构成员是独立于实例的.

我是通过类比班级来做这件事的。你看到了吗?

 
hoz:

我需要 我的结构成员不依赖于结构的一个实例。.


结构A
{
int v;
};

静态的A a;


?

 

创建一个全局 对象 就可以了,为什么要这样做呢?(哎哟哟--结构,然后你会再次理解自己的东西,并攻击)

优点。

1) 更少的文字

2)更多的便携性

3)如果你突然需要另一个对象,对其创建没有禁令

4)可能会有大量的数据,但这是一个给开发者的问题。

弊端。

1)我不喜欢通过对象名称来引用字段,我希望通过静态来引用,都明白我的意思。

 
sergeev:


结构A
{
int v;
};

静态的A a;


?

为什么不按照文件规定对类进行这样的处理?为什么它要把每个成员拿出来,在一个类后面初始化?