MQL4에서 싱글톤 패턴을 구현할 수 있습니까? - 페이지 4

 
FAQ :

미리 정의된 변수와 표준 구조를 사용하는 것이 더 간편하지 않습니까???

예를 보고 싶습니다. 그리고 나서 나는 이미 대안 옵션이 제공되지 않았지만 바퀴를 재발명하고 있다는 전체 페이지를 읽고 있습니다.
 
무엇의 예???
 

그러면 미리 정의된 변수 에서 내가 준 기본 구조의 다른 유형이 어디에 있는지 보여주세요 ???

이 구조에 대해 구체적으로 말하는 것이 아니라 일반적으로 이 기술에 대해 이야기하는 것입니다.

예를 들어 다음은 위치 속성 구조입니다.

 struct Position_Properties
{
   datetime     gdt_Expiration;       // Срок истечения отложенного ордера
   datetime     gdt_OpenTime;         // Время открытия выбранной позиции
   double       gd_OpenPrice;         // Цена открытия
   double       gd_Lots;             // Объём позиции на открытие
   double       gd_CurSL;             // Текущий Stop Loss выбранной позиции
   double       gd_NewSL;             // Новый Stop Loss выбранной позиции
   double       gd_CurTP;             // Текущий Take Profit выбранной позиции
   double       gd_NewTP;             // Новый Take Profit выбранной позиции
   int          gi_CurTicket;         // Тикет выбранного ордера
   int          gi_Type;             // Тип торговой операции
   int          gi_Slippage;         // Максимально допустимое отклонение цены для рыночных ордеров
   int          gi_Magic;             // Магический номер
   string       gs_Comment;           // Комментарий
   string       gs_Symbol;           // Наименование фин. инструмента, с которым производится операция
   ulong        gu_Duration;         // Длительность позиции в секундах
} SPos;

또한 미리 정의된 변수? 예, 그러한 사전 정의된 변수는 없습니다!

 
글쎄, 여기에서 시작해야했습니다. 첫 번째 게시물에서 제공 한 구조로 판단합니다.
 
FAQ :
글쎄, 여기에서 시작해야했습니다. 첫 번째 게시물에서 제공 한 구조로 판단합니다.


네 이해했습니다. 내 옵션은 무엇입니까? 이 시점에서 정말 막혔습니다. 몇 가지 솔루션이 필요합니다. 이 변수를 클래스에 어떻게 전달할 수 있습니까? 나는 편리함을 원하기 때문에 묻습니다 ...

 
hoz :

단일 사본에 필요한 구조가 있습니다. 당연히 서로 다른 클래스의 데이터 구조에서 여러 개체를 만드는 것은 매우 권장되지 않습니다.

그래서 이 경우 가장 합리적인 선택은 싱글톤 패턴을 사용하는 것이라는 결론에 이르렀습니다.

권리?

사실이 아니다.

외부 수정자를 사용

 

그래서?

 struct Position_Properties
{
   extern static datetime     gdt_Expiration;       // Срок истечения отложенного ордера
   extern static datetime     gdt_OpenTime;         // Время открытия выбранной позиции
   extern static double       gd_OpenPrice;         // Цена открытия
   extern static double       gd_Lots;             // Объём позиции на открытие
   extern static double       gd_CurSL;             // Текущий Stop Loss выбранной позиции
   extern static double       gd_NewSL;             // Новый Stop Loss выбранной позиции
   extern static double       gd_CurTP;             // Текущий Take Profit выбранной позиции
   extern static double       gd_NewTP;             // Новый Take Profit выбранной позиции
   extern static int          gi_CurTicket;         // Тикет выбранного ордера
   extern static int          gi_Type;             // Тип торговой операции
   extern static int          gi_Slippage;         // Максимально допустимое отклонение цены для рыночных ордеров
   extern static int          gi_Magic;             // Магический номер
   extern static string       gs_Comment;           // Комментарий
   extern static string       gs_Symbol;           // Наименование фин. инструмента, с которым производится операция
   extern static ulong        gu_Duration;         // Длительность позиции в секундах
} SPos;

Position_Properties::gdt_Expiration = 0 ;
Position_Properties::gdt_OpenTime = 0 ;
Position_Properties::gd_OpenPrice = 0.0 ;
Position_Properties::gd_Lots = 0.0 ;
Position_Properties::gd_CurSL = 0.0 ;
Position_Properties::gd_CurTP = 0.0 ;
Position_Properties::gd_NewSL = 0.0 ;
Position_Properties::gd_NewTP = 0.0 ;
Position_Properties::gi_CurTicket;
Position_Properties::gi_Type;
Position_Properties::gi_Slippage = 3 ;
Position_Properties::gi_Magic;
Position_Properties::gs_Comment;
Position_Properties::gs_Symbol;
Position_Properties::gu_Duration:
 
hoz :

그래서?


이상한 논리.


그리고 extern을 운명이 아닌 것으로 만드는 구조의 인스턴스?

 
sergeev :

이상한 논리.


그리고 extern을 운명이 아닌 것으로 만드는 구조의 인스턴스?

그런 순간에 대한 언급은 어디에도 없습니다. 어떻게 완료되었는지 어떻게 알 수 있습니까? 친숙한 프로그래머에게 묻지 않은 사람 - 나는 모릅니다. 그리고 일부는 여전히 포럼에 나와 핀을 고정합니다.

그래서?

 struct Position_Properties
{
   static datetime     gdt_Expiration;       // Срок истечения отложенного ордера
   static datetime     gdt_OpenTime;         // Время открытия выбранной позиции
   static double       gd_OpenPrice;         // Цена открытия
   static double       gd_Lots;             // Объём позиции на открытие
   static double       gd_CurSL;             // Текущий Stop Loss выбранной позиции
   static double       gd_NewSL;             // Новый Stop Loss выбранной позиции
   static double       gd_CurTP;             // Текущий Take Profit выбранной позиции
   static double       gd_NewTP;             // Новый Take Profit выбранной позиции
   static int          gi_CurTicket;         // Тикет выбранного ордера
   static int          gi_Type;             // Тип торговой операции
   static int          gi_Slippage;         // Максимально допустимое отклонение цены для рыночных ордеров
   static int          gi_Magic;             // Магический номер
   static string       gs_Comment;           // Комментарий
   static string       gs_Symbol;           // Наименование фин. инструмента, с которым производится операция
   static ulong        gu_Duration;         // Длительность позиции в секундах
};
extern Position_Properties::SPos;
Position_Properties::gdt_Expiration = 0 ;
Position_Properties::gdt_OpenTime = 0 ;
Position_Properties::gd_OpenPrice = 0.0 ;
Position_Properties::gd_Lots = 0.0 ;
Position_Properties::gd_CurSL = 0.0 ;
Position_Properties::gd_CurTP = 0.0 ;
Position_Properties::gd_NewSL = 0.0 ;
Position_Properties::gd_NewTP = 0.0 ;
Position_Properties::gi_CurTicket;
Position_Properties::gi_Type;
Position_Properties::gi_Slippage = 3 ;
Position_Properties::gi_Magic;
Position_Properties::gs_Comment;
Position_Properties::gs_Symbol;
Position_Properties::gu_Duration:
 
hoz :

그런 순간에 대한 언급은 어디에도 없습니다. 어떻게 완료되었는지 어떻게 알 수 있습니까? 친숙한 프로그래머에게 묻지 않은 사람 - 나는 모릅니다. 그리고 일부는 여전히 포럼에 나와 핀을 고정합니다.

그래서?


이게 뭔가요??

 extern Position_Properties ::SPos;