给OOP专家的一个问题。 - 页 36 1...293031323334353637383940414243...55 新评论 Реter Konow 2019.10.05 19:53 #351 Artyom Trishkin: 在这个例子中 Y类包含具有F和Z类类型的变量。 但如果你已经在某处创建并使用了F和Z类的对象,你将无法在对象Y中访问它们。在对象Y中会有两个新的类F和Z的对象。 为了获得对已经创建并正在使用的F和Z类对象的访问权,你需要在Y类中获得对F和Z类对象的引用--然后Y类就可以对已经存储在F和Z中的那些数据进行操作,而不是使用新的、原始的F和Z。 但如果你立即创建这样一个对象链接,那么其中的F和Z将给予类F和Z的访问权,它们的填充应该只通过类Y来完成--同样,从它那里给予对象F和Z的访问权,得到一个指向所需对象的指针,并通过指针进行操作。 不过,这很复杂。我将考虑... Dmitry Fedoseev 2019.10.05 20:01 #352 Artyom Trishkin: 或者,在你想要其他类的数据的类中,你可以做一个方法来获得一个指向所需类的指针。 class CA{ protected: public: void f(){ Print("A"); } }; class CB{ protected: CA * a; public: void f(CA * arg){ a=arg; } void f(){ Print("B"); } void f2(){ a.f(); } }; CA a; CB b; void OnStart(){ b.f(GetPointer(a)); b.f(); b.f2(); } Artyom Trishkin 2019.10.05 20:14 #353 Dmitry Fedoseev: 嗯,是的。 这时我们知道对象在CB a和CB b变量中的位置。如果它们是用new创建的,那么指针就需要被保存,并从保存的位置检索出来。 Dmitry Fedoseev 2019.10.05 20:21 #354 Artyom Trishkin: 嗯,是的,那是当我们知道对象在哪里时--在CB a和CB b变量中。但如果它们是通过new创建的,指针需要被保存,并从保存的位置检索。 一旦对象被创建,指针是已知的,把它传递给另一个对象。 Artyom Trishkin 2019.10.05 20:45 #355 Dmitry Fedoseev:一旦对象被创建,就会知道一个指针,将其传递给另一个对象。 但是,如果你需要的不是在创建的那一刻(用户点击按钮--新对象创建),而是在进一步使用程序的过程中获得一个指针。 在我看来,拥有一个指向所有对象的所有指针的列表更有用。在这种情况下,你不必将新创建的对象的指针推送到其他类的所有其他对象。另外,当你创建新的对象的新类时,你就不需要把对象指针的传递也重写到这个新类。而当你需要在一个新的类中获得以前创建的对象的指针时,只需写下通过标识符获得正确对象的方法。 然而,每个人都以他自己的方式疯狂。我是如此 :) Alexey Volchanskiy 2019.10.06 00:55 #356 嗯,而在夏普和MQL中,指针是描述符。而.NET代码在很早以前就正式开放了。这里有人尝试过将代表权移植到MQL吗? Vladimir Simakov 2019.10.06 01:13 #357 Alexey Volchanskiy: 嗯,而在夏普和MQL中,指针是描述符。而.NET的代码在很久以前就正式开放了。这里有人尝试过将代表权移植到MQL吗? 15.10提醒我,我会考虑一下,可能会有效果。 Alexey Volchanskiy 2019.10.06 01:45 #358 Vladimir Simakov: 15.10 提醒我,我会考虑的,可能会有结果。 什么是15.10? Artyom Trishkin 2019.10.06 01:58 #359 Alexey Volchanskiy: 什么是15.10? 也许是10月15日? Vladimir Simakov 2019.10.06 02:23 #360 Artyom Trishkin: 也许是10月15日? 这是正确的,但与此同时,这是一个假期。 1...293031323334353637383940414243...55 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在这个例子中
Y类包含具有F和Z类类型的变量。
但如果你已经在某处创建并使用了F和Z类的对象,你将无法在对象Y中访问它们。在对象Y中会有两个新的类F和Z的对象。
为了获得对已经创建并正在使用的F和Z类对象的访问权,你需要在Y类中获得对F和Z类对象的引用--然后Y类就可以对已经存储在F和Z中的那些数据进行操作,而不是使用新的、原始的F和Z。
但如果你立即创建这样一个对象链接,那么其中的F和Z将给予类F和Z的访问权,它们的填充应该只通过类Y来完成--同样,从它那里给予对象F和Z的访问权,得到一个指向所需对象的指针,并通过指针进行操作。
或者,在你想要其他类的数据的类中,你可以做一个方法来获得一个指向所需类的指针。
嗯,是的。 这时我们知道对象在CB a和CB b变量中的位置。如果它们是用new创建的,那么指针就需要被保存,并从保存的位置检索出来。
嗯,是的,那是当我们知道对象在哪里时--在CB a和CB b变量中。但如果它们是通过new创建的,指针需要被保存,并从保存的位置检索。
一旦对象被创建,指针是已知的,把它传递给另一个对象。
一旦对象被创建,就会知道一个指针,将其传递给另一个对象。
但是,如果你需要的不是在创建的那一刻(用户点击按钮--新对象创建),而是在进一步使用程序的过程中获得一个指针。
在我看来,拥有一个指向所有对象的所有指针的列表更有用。在这种情况下,你不必将新创建的对象的指针推送到其他类的所有其他对象。另外,当你创建新的对象的新类时,你就不需要把对象指针的传递也重写到这个新类。而当你需要在一个新的类中获得以前创建的对象的指针时,只需写下通过标识符获得正确对象的方法。
然而,每个人都以他自己的方式疯狂。我是如此 :)
嗯,而在夏普和MQL中,指针是描述符。而.NET的代码在很久以前就正式开放了。这里有人尝试过将代表权移植到MQL吗?
15.10 提醒我,我会考虑的,可能会有结果。
什么是15.10?
什么是15.10?
也许是10月15日?
也许是10月15日?