给OOP专家的一个问题。 - 页 36

 
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的访问权,得到一个指向所需对象的指针,并通过指针进行操作。

不过,这很复杂。我将考虑...
 
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();
   
}
 
Dmitry Fedoseev:

嗯,是的。 这时我们知道对象在CB a和CB b变量中的位置。如果它们是用new创建的,那么指针就需要被保存,并从保存的位置检索出来。

 
Artyom Trishkin:

嗯,是的,那是当我们知道对象在哪里时--在CB a和CB b变量中。但如果它们是通过new创建的,指针需要被保存,并从保存的位置检索。

一旦对象被创建,指针是已知的,把它传递给另一个对象。

 
Dmitry Fedoseev:

一旦对象被创建,就会知道一个指针,将其传递给另一个对象。

但是,如果你需要的不是在创建的那一刻(用户点击按钮--新对象创建),而是在进一步使用程序的过程中获得一个指针

在我看来,拥有一个指向所有对象的所有指针的列表更有用。在这种情况下,你不必将新创建的对象的指针推送到其他类的所有其他对象。另外,当你创建新的对象的新类时,你就不需要把对象指针的传递也重写到这个新类。而当你需要在一个新的类中获得以前创建的对象的指针时,只需写下通过标识符获得正确对象的方法。

然而,每个人都以他自己的方式疯狂。我是如此 :)

 
嗯,而在夏普和MQL中,指针是描述符。而.NET代码在很早以前就正式开放了。这里有人尝试过将代表权移植到MQL吗?
 
Alexey Volchanskiy:
嗯,而在夏普和MQL中,指针是描述符。而.NET的代码在很久以前就正式开放了。这里有人尝试过将代表权移植到MQL吗?
15.10提醒我,我会考虑一下,可能会有效果。
 
Vladimir Simakov:
15.10 提醒我,我会考虑的,可能会有结果。

什么是15.10?

 
Alexey Volchanskiy:

什么是15.10?

也许是10月15日?

 
Artyom Trishkin:

也许是10月15日?

这是正确的,但与此同时,这是一个假期。