MQL5의 OOP에 대한 질문 - 페이지 57

 
Dmitry Fedoseev :

C2에서 x에 대한 액세스는 어디에 있습니까?
반복하지만 중첩 클래스는 객체 생성 에 대한 클래스 가시성의 문제일 뿐입니다. 클래스 C2의 개체는 클래스 C1 내부에서만 만들 수 있습니다. 그리고 그게 전부입니다. 레코드 유형과의 유일한 차이점은 다음과 같습니다.
그러나 물론 다른 중첩 클래스를 호출합니까? 말해봐.

그것은 다음에 관한 것입니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

블라디미르 시마코프 , 2020.05.16 21:11

 class Originator
  {
   int                state;
public :
   class Memento;
   Originator() : state( 0 ){}
   Memento*          getMemento()      { return new Memento(& this );}
   void               setState( int s)   {state=s;}
   void               dumpState()       { printf ( "State: %i" , state);}
///////////////////////////////////////////////////////////
   class Memento{
       int             state;
      Originator*    org;
       public :
                     Memento(Originator* mOrg):state( mOrg.state ),org(mOrg){}
       void            restoreState() { org.state =state;}
   };
///////////////////////////////////////////////////////////
  };

오류가 없는 이유: 비공개 멤버에 액세스할 수 없습니까?
답변: Memento 때문에   Originator 와 관련된 중첩 (중첩/내부) 클래스

 
Sergey Dzyublik :

그것은 다음에 관한 것입니다:

그리고 다른 클래스의 필드에 대한 액세스는 어디에 있습니까?

 
Dmitry Fedoseev :

그리고 다른 클래스의 필드에 대한 액세스는 어디에 있습니까?

농담입니다. 게시물 작성자는 특히 영재를 위해 노란색으로 강조 표시했습니다 ...

 
Sergey Dzyublik :

농담입니다. 게시물 작성자는 특히 영재를 위해 노란색으로 강조 표시했습니다 ...

알겠어요. 어제는 그렇지 않은 것 같습니다. https://www.mql5.com/en/forum/85652/page48#comment_16405154 하지만 이 클럽 친구는... 그래서 모든 것이 괜찮지 않습니까?

스크린샷도 찍겠습니다.

123

 
Dmitry Fedoseev :

알겠어요. 어제는 그렇지 않은 것 같습니다. https://www.mql5.com/en/forum/85652/page48#comment_16405154 하지만 이 클럽 친구는... 그래서 모든 것이 괜찮지 않습니까?

스크린샷도 찍겠습니다.

당신은 정신적으로 괜찮습니까?
당신은 하이라이트가있는 특정 게시물을 가리 키고 바보입니다.하지만 이것을 받아 들일 수도 없으며 완전히 다른 주제의 이해할 수없는 게시물을 참조하여 어떻게 든 자신을 정당화합니다 ...
행운을 빕니다...

 
Sergey Dzyublik :

당신은 정신적으로 괜찮습니까?
당신은 하이라이트가있는 특정 게시물을 가리키고, 당신은 바보입니다.하지만 당신은 이것을 받아 들일 수 없으며 완전히 다른 주제의 이해할 수없는 게시물을 참조하여 어떻게 든 자신을 정당화합니다 ...
행운을 빕니다...

나는 같은 주제의 포스트, 이 모든 토론이 시작된 포스트를 참조합니다. 이 게시물이 어떤 스레드에서 왔는지 볼 수 없습니다. 따라서 질문이 생깁니다. 아마도 당신은 정신에 뭔가가 있습니까?

그리고 그는 무뚝뚝하지 않았지만 놀라움에 미쳐 버렸습니다. 하지만 이 게시물을 여기로 끌어온 곳이 어디입니까? 흥미롭습니다.

그리고 주목하세요. 어제 게시물 작성자는 이것이 가능하다는 것을 알게 되었습니다. 뭔가를 배웠지만 깨닫지 못했기 때문에 이 주제의 뒷부분에서 의미 없는 예제를 작성했습니다. 그리고 zykspert는 어디를 보았습니까?

 
Igor ru.wikipedia.org/wiki/Keeper_(design_pattern)이 제공한 Wikipedia에 대한 링크의 코드를 보는 것도 그다지 흥미롭지 않습니다. Java의 첫 번째 예입니다. Caretaker 클래스의 개스킷은 무엇입니까? 똑똑하기 위해서? 그리고 실제로, 그것은 모두 추가 구조와 두 가지 방법을 사용하는 것으로 귀결됩니다. Great Holy Design Patterns에 대해 들어본 적이 없는 바보는 생각할 것입니다. 훌륭한 지식" .
 
오래 전 한 인터뷰에서 물건이 무엇이냐는 질문을 받았습니다. 나는 대답했습니다 - 일련의 방법과 즉시 고용되었습니다. 그런 다음 나는 다른 후보자들이 고양이, 그들의 발, 개 및 프로그래밍에 관한 어린이 책에 쓰여진 다른 것들에 대해 이야기하기 시작했다는 말을 들었습니다.
 
Evgeniy Zhdan :
오래 전 한 인터뷰에서 물건이 무엇이냐는 질문을 받았습니다. 나는 대답했습니다 - 일련의 방법과 즉시 고용되었습니다. 그런 다음 나는 다른 후보자들이 고양이, 그들의 발, 개 및 프로그래밍에 관한 어린이 책에 쓰여진 다른 것들에 대해 이야기하기 시작했다는 말을 들었습니다.

당신 이야기의 교훈은 무엇입니까? 모두가 일을 하고 자리를 잡습니다 - 당신은 적절한 시간에 적절한 장소에 있어야 합니다. 그것은 비즈니스입니다 ... 버튼을 누를 자리가 비어 있었기 때문에 수락했습니다)))

아니면 당시에 외국 증명서가 있었나요? ;)


추신: 왜 일하세요? 높은 비용? - EA 100-300,000 루블에 대한 평균 수표가 있습니다. 제 생각에는 적어도 한 달 동안 충분해야합니다.))))


UPD: 내가 모르는 사이에 괴물 쇼에 참가자가 된 것 같은 느낌이 들었습니다. 이것은 옳지 않습니다! (((

 

내가 설명한다.

mql5에서 내포된 클래스는 프로와 마찬가지로 외부 클래스와 관련하여 친구이지만(그런데 이 순간을 정확히 알지 못했습니다) mql4에서는 이것이 구현되지 않았으며 다시 한 번 , 목발을 써야 합니다. 즉, 이 코드는 mql5에서는 올바르게 컴파일되지만 mql4 에서는 컴파일 오류가 발생 합니다.

 class Originator
  {
   int                state;
public :
   class Memento;
   Originator() : state( 0 ){}
   Memento*          getMemento()      { return new Memento(& this );}
   void               setState( int s)   {state=s;}
   void               dumpState()       { printf ( "State: %i" , state);}
///////////////////////////////////////////////////////////
   class Memento{
       int             state;
      Originator*    org;
       public :
                     Memento(Originator* mOrg):state(mOrg.state),org(mOrg){}
       void            restoreState() {org.state=state;}
   };
///////////////////////////////////////////////////////////
  };

물론 여기에서 그들은 이것이 C ++가 아니라고 즉시 나에게 쓸 것이지만 그럼에도 불구하고 나는 유추를 그릴 것입니다.

공식 mql 문서의 중첩 클래스와 외부 필드에 액세스하는 기능에 대해서는 기억나지 않습니다. 따라서 이 모든 것이 UB에 대한 생각을 불러일으킵니다. 예, 작동하지만 관련 정보가 부두에 나타날 때까지 자신의 위험과 위험을 감수하는 것처럼 베팅하십시오.