MQL5中的OOP问题 - 页 5 123456789101112...96 新评论 Artyom Trishkin 2019.07.04 12:52 #41 与此主题无关的评论已被移至"新手对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论"。 Dmitry Fedoseev 2019.07.04 13:00 #42 Vladimir Simakov: 来吧!我一直在使用它。 在哪里? 在什么地方,怎么做? 主持人,对不起,我重复了这个问题。我真的想得到一个答案。 Vladimir Simakov 2019.07.04 13:12 #43 Artyom Trishkin: 为什么你会故意重新分配一个 传递给函数 的指针?当然,会有泄密事件发生。但这不是一个 "典型的泄漏",而是一个处理对象指针的典型错误。 你不必在这里创建一个新的对象,而是处理外部对象,该对象的指针被传入函数。 这不是我。它取自本线上其他人的代码。它被作为一个例子。 Vladimir Simakov 2019.07.04 13:15 #44 Dmitry Fedoseev: 在哪里? 在什么地方,怎么做? 主持人,对不起,我重复了这个问题。我真的想得到一个答案。 要有耐心。我回家后会把它贴出来。 Roman 2019.07.04 13:33 #45 Dmitry Fedoseev: 在哪里? 在什么地方,怎么做? 主持人,对不起,我重复了这个问题。我真的想得到一个答案。 如果我对这个问题的理解是正确的,我们用new来声明这个类是一个对象。 然后用一个点来通过创建的对象 调用类的公共方法。 在所有被调用的方法执行完毕后,我们通过删除创建的对象delete来清除内存。 Dmitry Fedoseev 2019.07.04 13:47 #46 Roman: 如果我对这个问题的理解是正确的,我们用new来声明这个类是一个对象。 然后我们通过创建的对象,用点来调用类的公共方法。 在所有被调用的方法执行完毕后,我们通过删除创建的对象delete来清除内存。 不对。起初我以为这是一个像这样的函数参数--对象,但不是通过引用,但最后有一个分号。如果在声明时是正常的对象创建,那么为什么在括号里?所以现在它仍然是世纪之谜。 Vladimir Simakov 2019.07.04 14:24 #47 Dmitry Fedoseev: 不对。起初我以为这是一个像这样的函数参数--对象,但不是通过引用,但最后有一个分号。如果在声明时是正常的对象创建,那么为什么在括号里?所以现在它仍然是世纪之谜。 在括号内--因为它是对文本的注释)))) Igor Makanu 2019.07.04 14:52 #48 Artyom Trishkin: 而你为什么故意将传递给函数的 指针重新赋值?当然,会有泄密事件发生。但这不是一个 "典型的泄漏",而是一个处理对象的指针的典型错误。 你不需要在这里创建一个新的对象,而是处理外部对象的指针,该指针被传入函数。 这不是关于我的例子,而是关于MQL中指针本身的实现--如果你不需要解除引用它们(而且指针可以分配给对象的一个实例!),如果你不传递指针,而是传递对象的引用,https://www.mql5.com/ru/forum/1111/page2471#comment_11796665 这里我们没有关于(CObj& obj)出现的时间和地点的详细信息(&不是一个指针脱引操作,而是获取一个指针GetPointer()) 好吧,我不想浪费任何信息......我已经告诉过自己,我在这个论坛上再重复一次--MQL不是C++,它就是这样实现的--好吧,我没有别的选择了 Dmitry Fedoseev 2019.07.04 15:08 #49 Igor Makanu: 这不是关于我的例子,而是关于MQL中指针本身的实现--如果你不需要解除引用它们(而且指针可以分配给对象的一个实例!),如果你不传递指针,而是传递对象的引用,https://www.mql5.com/ru/forum/1111/page2471#comment_11796665 这里我们没有关于(CObj& obj)出现的时间和地点的详细信息(&不是一个指针脱引操作,而是获取一个指针GetPointer()) 好吧,我不想浪费任何信息......我已经告诉过自己,我在这个论坛上再重复一次--MQL不是C++,它就是这样实现的--好吧,我没有别的选择了 你太夸张了,没有什么复杂和混乱的问题。 Dmitry Fedoseev 2019.07.04 16:21 #50 Vladimir Simakov: 括号是因为这是一个关于文本的说明))))。 所以,你去那里。 像这样。 void z(CObj * o){ } 甚至不只是可以,而是更好,因为你可以这样称呼它。 CObj obj; z(GetPointer(obj)); 如果你通过引用传递一个指针,你需要另一个变量来存放指针。 *** 而如果需要将一个指针传递给一个函数,以便在函数中创建一个对象,这就是它的工作方式。 class CObj{ public: int f(){ return(33); } }; CObj * obj; void OnStart(){ z(obj); delete(obj); } void z(CObj & o){ o = new CObj(); } 这基本上是你想知道的关于OOP的所有内容,但却不敢问)) 123456789101112...96 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
来吧!我一直在使用它。
在哪里? 在什么地方,怎么做?
主持人,对不起,我重复了这个问题。我真的想得到一个答案。
为什么你会故意重新分配一个 传递给函数 的指针?当然,会有泄密事件发生。但这不是一个 "典型的泄漏",而是一个处理对象指针的典型错误。
你不必在这里创建一个新的对象,而是处理外部对象,该对象的指针被传入函数。
在哪里? 在什么地方,怎么做?
主持人,对不起,我重复了这个问题。我真的想得到一个答案。
在哪里? 在什么地方,怎么做?
主持人,对不起,我重复了这个问题。我真的想得到一个答案。
如果我对这个问题的理解是正确的,我们用new来声明这个类是一个对象。
然后用一个点来通过创建的对象 调用类的公共方法。
在所有被调用的方法执行完毕后,我们通过删除创建的对象delete来清除内存。
如果我对这个问题的理解是正确的,我们用new来声明这个类是一个对象。
然后我们通过创建的对象,用点来调用类的公共方法。
在所有被调用的方法执行完毕后,我们通过删除创建的对象delete来清除内存。
不对。起初我以为这是一个像这样的函数参数--对象,但不是通过引用,但最后有一个分号。如果在声明时是正常的对象创建,那么为什么在括号里?所以现在它仍然是世纪之谜。
不对。起初我以为这是一个像这样的函数参数--对象,但不是通过引用,但最后有一个分号。如果在声明时是正常的对象创建,那么为什么在括号里?所以现在它仍然是世纪之谜。
而你为什么故意将传递给函数的 指针重新赋值?当然,会有泄密事件发生。但这不是一个 "典型的泄漏",而是一个处理对象的指针的典型错误。
你不需要在这里创建一个新的对象,而是处理外部对象的指针,该指针被传入函数。
这不是关于我的例子,而是关于MQL中指针本身的实现--如果你不需要解除引用它们(而且指针可以分配给对象的一个实例!),如果你不传递指针,而是传递对象的引用,https://www.mql5.com/ru/forum/1111/page2471#comment_11796665
这里我们没有关于(CObj& obj)出现的时间和地点的详细信息(&不是一个指针脱引操作,而是获取一个指针GetPointer())
好吧,我不想浪费任何信息......我已经告诉过自己,我在这个论坛上再重复一次--MQL不是C++,它就是这样实现的--好吧,我没有别的选择了
这不是关于我的例子,而是关于MQL中指针本身的实现--如果你不需要解除引用它们(而且指针可以分配给对象的一个实例!),如果你不传递指针,而是传递对象的引用,https://www.mql5.com/ru/forum/1111/page2471#comment_11796665
这里我们没有关于(CObj& obj)出现的时间和地点的详细信息(&不是一个指针脱引操作,而是获取一个指针GetPointer())
好吧,我不想浪费任何信息......我已经告诉过自己,我在这个论坛上再重复一次--MQL不是C++,它就是这样实现的--好吧,我没有别的选择了
你太夸张了,没有什么复杂和混乱的问题。
括号是因为这是一个关于文本的说明))))。
所以,你去那里。
像这样。
void z(CObj * o){ }
甚至不只是可以,而是更好,因为你可以这样称呼它。
z(GetPointer(obj));
如果你通过引用传递一个指针,你需要另一个变量来存放指针。
***
而如果需要将一个指针传递给一个函数,以便在函数中创建一个对象,这就是它的工作方式。
这基本上是你想知道的关于OOP的所有内容,但却不敢问))