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

 
ALXIMIKS :

캡슐화를 잊어 버렸습니다. 그리고 삭제할 수 있습니다. 하지만 여기에는 상수 포인터가 없습니다.) 그리고 일반적으로 싱글톤이 최상의 패턴은 아닙니다.

템플릿이 있으면 좋습니다. 수업의 경우 아마도 꿈일 것입니다.

 
Scriptong :
우리는 정적 클래스 멤버에 대해 이야기하고 있었습니다. 또한 내 예에서 m_a는 개인 구성원입니다. 그리고 그러한 클래스 멤버는 클래스의 인스턴스에서만 액세스할 수 있습니다. 따라서 클래스 인스턴스를 제외하고 코드의 어느 곳에서도 변수 값을 변경할 수 없습니다. 이것은 미래에 가능한 많은 버그를 제거하는 보안 코드를 작성하는 문제입니다.


글쎄, 나는 다른 것에 대해 공개적으로 생각하고 정적과 관련하여 무엇을 바꿀 것인가를 제거했습니다 - 클래스 내부에서 - 아무것도 ?!

그러나 클래스 멤버를 정적으로 선언할 수 없으면 프로그램의 전역 수준 에서 이 데이터를 선언해야 합니다.

주제는 미해결 상태로 남아 있습니다.

 
sergeev :

이것은 mql의 시원함에 의해 촉진되었습니다.

문구에 신경쓰지 마세요

일반적으로 "도블 문서"를 읽는 과정에서 귀찮게해서는 안됩니다. 문제가 있기 때문입니다. 그리고 위의 몇 가지 게시물과 같이 일종의 "똑똑한 사람"이 나타나 토론을 시작합니다. 그리고 상황은 내가 매우 주의를 기울이는 것과 같습니다. 특정 데이터 유형 에 대해 이야기하고 있다는 것을 읽으면 그렇게 인식합니다. 이것이 결함이라면 인정해야 할 것입니다.
 
ALXIMIKS :

누군가 싱글톤에 대해 외쳤습니다.

그리고 템플릿을 클래스로 확장하고 매개변수를 명시적으로 설정할 계획입니까? 그리고는 내가 정말 많이 원한다고 욕을 한다.

추신, Singleton 내부에 SomeClass 클래스 선언하는 것이 더 정확합니다.    생성될 수 있음), 그러나 사실은 아니지만 어떻게든 더 명확하게


이 모든 것은 내가 본 것입니다. 이것을 내 구조에 구체적으로 적용하는 방법이 궁금합니다. 그리고 일부 소스에서 복사-붙여넣기를 보는 것만이 아닙니다. 나도 할 수 있어)

일반적으로 Igor 의 조언에 따라 이것은 분명히 나에게 유용하지 않을 것이라는 것을 깨달았습니다. 그래서 더 이상 이 패턴에 대해 이야기하지 않습니다. 그리고 C ++ - new와 다른 가짜 문서와 관련하여 이것은 분명히 사실입니다. 그러나 다시 말하지만 그것에 대해 할 수 있는 일은 없습니다.

일단은 최대한 쓸만 합니다. 대안이 있을 때까지.

 

친애하는,이 게시물에서 무엇이 잘못 되었습니까 ???

ALXIMIKS   03.09.2014 15:34   #
호즈 :

클래스 또는 구조의 변수가 프로그램 실행 중에 값을 잃지 않는다면 왜 여기서 static으로 선언됩니까?

그들은 공개 섹션에 있으며 구조에서와 같이 말할 수 있습니다 ...


당신은 눈치가 느리거나 눈치가 느리거나 직설적이어서 죄송합니다. 흑백으로 작성되었습니다.

예를 들어 텍스트 구문 분석을 위한 CParser 클래스 있고 처리된 총 단어 및 문자 수 를 계산해야 합니다. 필요한 클래스 멤버를 정적 으로 선언하고 전역 수준에서 초기화하면 충분 합니다. 그런 다음 클래스의 모든 인스턴스는 작업 중에 단어 및 문자의 공통 카운터를 사용합니다 .

다음에 대해 적어도 한 번 언급된 곳:

클래스 또는 구조 변수는 프로그램 실행 중에 값을 잃습니다.

여기서는 OOP의 원칙을 유지하고 전역 변수를 생성하지 않으면 정적 클래스 멤버를 사용하여 거기에 있는 일부 단어의 수를 셀 수 있다고 말합니다.

그것(정적 클래스 멤버)은 단일 인스턴스에서 생성되며 이 클래스의 생성된 객체 수에 의존하지 않습니다.

 

구조와 클래스에 대해 어떤 측면에서 이해할 수없는 습격뿐만 아니라 당신이 갑자기 스스로 발명 한 문제,

변수 속성에 대한 집합적인 개념으로서 OOP 및 저장 기간의 기본을 이해하지 못한다는 사실에 우려 ???

 
ALXIMIKS :

친애하는,이 게시물에서 무엇이 잘못 되었습니까 ???

당신이 읽을 수 없다면 그것은 당신의 문제입니다. 다음은 제가 질문한 내용의 인용문입니다. 내가 어딘가에 타이핑을 하거나 급하게 틀린 글을 적었다면, 당신 같은 '똑똑한' 사람들이 어쨌든 여기서 수다를 떨고 있기 때문입니다. 읽는 법을 배웠다면 특히 지루한 사람들을 위해 게시물에 대한 영구 링크가 있습니다. https://www.mql5.com/ru/forum/152923/page6#987432

 
게시물에 무엇이 잘못 되었습니까? 예, 읽을 수 없습니다. 읽을 수 있으므로 질문에 답하십시오.)
 
struct A{
   static struct B{
      int x;
      int y;
   }Single;
};


void OnStart()
{
        A::Single.x = 5;
        Alert(A::Single.x);
}
 

stuct와 클래스에서 static이 다르게 행동하는 고통의 2일 동안을 이해하지 못하셨나요???

그 과정에서 구조는 C에서 가져오고 상속 측면에서 약간만 펌핑되었습니다.

스윙 클래스, 그들은 가득 찼습니다.

이 때문에 정적 변수를 위한 구조의 공간을 예약할 필요가 없습니다.

 struct A{
   static    int x;
};

수업에서 그렇지 않으면 장소를 예약해야합니다.

 class B{
public :
   static    int x;
};
int B::x = 0 ;