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를 통해서만 채워야 합니다. 원하는 객체에 대한 포인터를 얻고 포인터로 작업하십시오.

그러나 어렵습니다. 나는 생각 할 것이다 ...
 
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 :

객체가 생성되자마자 포인터가 알려지면 다른 객체에 전달합니다.

그러나 생성 시점(사용자가 버튼을 클릭함 - 새 개체가 생성됨)이 아니라 이미 프로그램에 대한 추가 작업 과정에서 포인터 를 가져와야 하는 경우.

모든 개체에 대한 모든 포인터의 목록을 갖는 것이 더 유익한 것 같습니다. 이 경우 새로 생성된 개체의 포인터를 다른 클래스의 다른 모든 개체로 푸시할 필요가 없습니다. 그리고 새 객체의 새 클래스를 생성할 때 생성된 객체의 포인터를 이 새 클래스로 전송하는 것을 다시 작성할 필요가 없습니다. 그리고 새 클래스에서 - 이전에 생성된 객체에 대한 포인터를 가져와야 하는 경우 - 식별자로 원하는 객체를 얻는 방법을 작성하십시오.

그러나 모든 사람은 자신의 방식으로 미쳐갑니다. 난 그냥 :)

 
흠, 하지만 Sharpe와 MQL에서 포인터는 디스크립터입니다. 그리고 .NET 코드는 공식적으로 오래 전에 공개되었습니다. 아직 위임자를 MQL로 이식하려고 시도한 사람이 있습니까?
 
Alexey Volchanskiy :
흠, 하지만 Sharpe와 MQL에서 포인터는 디스크립터입니다. 그리고 .NET 코드는 공식적으로 오래 전에 공개되었습니다. 아직 위임자를 MQL로 이식하려고 시도한 사람이 있습니까?
15.10 아마 잘 될 것이라고 생각합니다.
 
Vladimir Simakov :
15.10 아마 잘 될 것이라고 생각합니다.

15.10이 뭔가요?

 
Alexey Volchanskiy :

15.10이 뭔가요?

아마도 10월 15일?

 
Artyom Trishkin :

아마도 10월 15일?

동일하지만 지금은 휴가입니다.