初学者的问题 MQL5 MT5 MetaTrader 5 - 页 179 1...172173174175176177178179180181182183184185186...1503 新评论 [删除] 2014.01.19 16:27 #1781 Reshetov:这不是一个指向自身的指针,而是一个与对象实现中的字段标识符相关的指针。 也就是说,在某些对象方法中可能有一个与字段相同标识符的局部变量,在这种情况下,你可以用它来区分指向对象字段的指针和指向局部变量的指针。 你可以用这个作为例子吗? Yury Reshetov 2014.01.19 19:28 #1782 Barbarian2: 这可以用于什么目的? 你能给我一个例子吗? 这在类的构造函数 中最常使用,这样就不会编造新的标识符,因为正是在构造函数中,参数值被分配给对象字段。 Vasiliy Sokolov 2014.01.19 23:08 #1783 Barbarian2: 你能举个例子吗?class node { public: void LinkWithNode(node* childNode) { if(CheckPoint(linkNode) != POINTER_INVALID) this.childNode = childNode; } private: node* childNode; }; class LineNode : node { public: LineNode(node* parentNode) { parentNode.LinkWithNode(GetPointer(this)); } };在这种情况下,当创建一个LineNode时,你需要指定当前LineNode实例所属的父节点。然后,父节点将能够通过引用来引用这个实例。在这个例子中,这个词被使用了两次。在第一种情况下,this一词指定childNode变量特指当前类,而没有this的childNode是同名的LinkWithNode方法变量。在第二种情况下,这将返回该类的当前实例,而GetPointer则接收一个 指向它的指针。这允许你在创建的时候绑定一个LineNode。 [删除] 2014.01.20 00:14 #1784 C-4: 在这种情况下,当创建一个LineNode时,你需要指定当前LineNode实例所属的父节点。然后,父节点将能够通过引用来引用这个实例。在这个例子中,这个词被使用了两次。在第一种情况下,this一词指定childNode变量特指当前类,而没有this的childNode是同名的LinkWithNode方法变量。在第二种情况下,这将返回该类的当前实例,而GetPointer则接收一个指向它的指针。因此有可能在创建的时候就绑定LineNode。 也就是说,在第二种情况下,它将导致代码的减少? Vladimir Gomonov 2014.01.20 09:36 #1785 Barbarian2: 即在第二种情况下,它将导致代码的减少? 不管用什么速记法(在这种情况下),你都是在关注错误的事情。 这方面的用法可以是多种多样的。重要的是要明白,在使用this的地方,this是对象实例的同义词。 当定义一个类时,当还没有this的实例时,这是告诉编译器程序员意思的唯一方法。 Vasiliy Sokolov 2014.01.20 12:45 #1786 Barbarian2: 即在第二种情况下,它将导致代码的减少?不,不是这样的。这使得我们可以控制一个已经在定义 中的类的实例。知道了这一点,我们就可以在一个特定的实例上施加我们自己的独特行为。这实现了高度的灵活性和抽象性。 Andrei Savchenko 2014.01.20 19:05 #1787 一句话的建议。我从mql4转到5,我要为1000或10k缓冲区写一个指标。是否可以用变量来命名缓冲区?喜欢while( a<1000){a++ B++缓冲区名称=缓冲区+abuff(a)=iMA(null, B,) }而随后的缓冲区处理也是如此循环往复或者任何其他方式来减少时间和代码的新mql5功能。 TheXpert 2014.01.20 19:18 #1788 Andrei-1:首先,限制是256个缓冲区(我可能是错的)。缓冲区也是可以的,你可以把它们放在类中,给出别名并通过别名搜索。 Andrei Savchenko 2014.01.20 19:35 #1789 谢谢你,我们会研究的。 Andrew Petras 2014.01.20 19:49 #1790 Andrei-1:在某处看到的文章tol64,我一眼就记不起来了,找找看吧。TheXpert。首先,限制是256个缓冲区(我可能是错的)。缓冲区的一切都很好,你可以把它们放到类中,给它们加别名,并通过别名进行搜索。 在帮助中没有限制"你可以在一个自定义指标中使用的指标缓冲区的数量是没有限制的。",但它确实在某个地方提到了512,所以我不知道。 1...172173174175176177178179180181182183184185186...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这不是一个指向自身的指针,而是一个与对象实现中的字段标识符相关的指针。
也就是说,在某些对象方法中可能有一个与字段相同标识符的局部变量,在这种情况下,你可以用它来区分指向对象字段的指针和指向局部变量的指针。
这可以用于什么目的? 你能给我一个例子吗?
你能举个例子吗?
在这种情况下,当创建一个LineNode时,你需要指定当前LineNode实例所属的父节点。然后,父节点将能够通过引用来引用这个实例。在这个例子中,这个词被使用了两次。在第一种情况下,this一词指定childNode变量特指当前类,而没有this的childNode是同名的LinkWithNode方法变量。在第二种情况下,这将返回该类的当前实例,而GetPointer则接收一个 指向它的指针。这允许你在创建的时候绑定一个LineNode。
在这种情况下,当创建一个LineNode时,你需要指定当前LineNode实例所属的父节点。然后,父节点将能够通过引用来引用这个实例。在这个例子中,这个词被使用了两次。在第一种情况下,this一词指定childNode变量特指当前类,而没有this的childNode是同名的LinkWithNode方法变量。在第二种情况下,这将返回该类的当前实例,而GetPointer则接收一个指向它的指针。因此有可能在创建的时候就绑定LineNode。
即在第二种情况下,它将导致代码的减少?
即在第二种情况下,它将导致代码的减少?
不,不是这样的。这使得我们可以控制一个已经在定义 中的类的实例。知道了这一点,我们就可以在一个特定的实例上施加我们自己的独特行为。这实现了高度的灵活性和抽象性。
一句话的建议。我从mql4转到5,我要为1000或10k缓冲区写一个指标。是否可以用变量来命名缓冲区?
喜欢
while( a<1000)
{
a++ B++
缓冲区名称=缓冲区+a
buff(a)=iMA(null, B,) }
而随后的缓冲区处理也是如此循环往复
或者任何其他方式来减少时间和代码的新mql5功能。
首先,限制是256个缓冲区(我可能是错的)。
缓冲区也是可以的,你可以把它们放在类中,给出别名并通过别名搜索。
在某处看到的文章tol64,我一眼就记不起来了,找找看吧。
首先,限制是256个缓冲区(我可能是错的)。
缓冲区的一切都很好,你可以把它们放到类中,给它们加别名,并通过别名进行搜索。