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

 
ALXIMIKS :


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

아니... 눈치가 느린 건 너야!
왜요? 읽을 수 없기 때문입니다.

이제 인용하겠습니다.

알시믹스 :

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

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

구조에서만 동일한 것이 필요합니다. 아니면 이해하기 어려운가요? 구조체와 클래스의 차이에 대한 질문이 몇 번이나 제기되었고, 실제로는 거의 없다는 대답이 몇 번이나 있었습니까? 약간의 차이점이 있습니다. 적어도 C++에서는 그렇습니다. 전문가들이 많이 모이는 포럼에서 이 질문을 한 적이 있습니다. 왜 그러한 차이가 있는지가 문제입니다.

나는 처음부터 이러한 변수가 단일 사본에 필요하다고 말했습니다. 아니면 읽기가 어렵습니까?

호즈 :

필요한 것을 반복합니다 ... 프로그램 실행 중에 멤버가 값을 유지해야 하는 구조가 있지만 이 구조를 사용하는 클래스의 메서드가 호출되면 멤버를 수정할 수 있습니다. 나는 그들이 정적이어야한다는 것을 이해합니다. 이러한 구성원은 단일 사본 에 있어야 합니다 . 이 구조의 멤버는 많은 클래스와 EA 자체에서 사용됩니다.

"스마트" 차이를 눈치 챘습니까? 추신은 빨간색으로 강조 표시했습니다.
 

우리가 읽은 클래스와 구조의 차이에 대한 문서에 관해서. 다시 말하지만, "현명한 사람" ALXIMIKS 를 위해 여기 :

클래스는 구조와 많은 차이점이 있습니다.

  • 선언은 class 키워드를 사용합니다.
  • 기본적으로 모든 클래스 멤버는 달리 지정되지 않는 한 개인 액세스 지정자를 가집니다. 구조의 데이터 멤버는 달리 지정되지 않는 한 기본적으로 액세스 유형이 public입니다.
  • 클래스 객체에는 가상 함수가 클래스에 선언되지 않은 경우에도 항상 가상 함수 테이블이 있습니다. 구조체는 가상 기능을 가질 수 없습니다.
  • new 연산자는 클래스 개체에 적용할 수 있지만 이 연산자는 구조에 적용할 수 없습니다.
  • 클래스는 클래스에서만 상속 할 수 있고 구조체는 구조체에서만 상속할 수 있습니다.

여기에 정적에 관한 것이 있습니까?

 

빅터는 뭔가! :-(

어떻게 그리고 무엇을 해야 하는지에 대해 이미 여러 번 작성했습니다.

아마도 당신은 그것에 빠져들기 시작하고 있습니까?

 
그리고 왜, 담즙을 뱉고 수백 명의 바보가 다가오는 차선에서 운전하고 있다고 소리치는 것이 좋습니다.
 
나는 화면이 당신이 필요로하는 컬렉션에 대한 패턴 (?) ....을 읽고 희망합니다 ...
 
hoz :

여기 에서 문서를 열고 다음을 확인합니다.

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

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

당신의 양에게 돌아갑니다.

당신은 무엇을 원하십니까?

 
sergeev :

당신은 무엇을 원하십니까?



독서하는 남자 :

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

이 과정에서 우리는 클래스와 구조에 대해 이야기합니다. 위에서 작성한 것으로 판단하면 문서에 따르면 클래스와 구조체 사이에 차이가 있지만 정적 수식어를 사용할 수 있거나 사용할 수 없다는 사실은 분명히 아닙니다.

Отсутствие возможности объявлять статически члены класса привело бы к необходимости объявлять эти данные на глобальном уровне программы.

그런게 있나요? 있다!

이동:

이렇게 하면 데이터와 해당 클래스 간의 관계가 깨질 뿐 아니라 데이터와 메서드를 클래스에 결합하여 처리하는 주요 OOP 패러다임과도 일치하지 않습니다. 정적 멤버를 사용하면 단일 인스턴스에 고유하지 않은 클래스 데이터가 클래스 범위에 존재할 수 있습니다.

정적 클래스 멤버는 특정 인스턴스에 종속되지 않으므로 액세스는 다음과 같습니다.

class_name::variable

여기서 구조체의 인스턴스에 의존하지 않는 구조체의 구성원이 필요합니다.

나는 수업과 유추하여 그것을했다. 이해했나요?

 
hoz :

내 구조체 멤버가 구조체 인스턴스와 독립적이어야 합니다 .


구조체 A
{
intv;
};

정적 A a;


?

 

응 뭔가 해? 하나의 전역 클래스 개체를 생성하면 됩니다. (oh-yo-yo-th - 구조 , 그러면 다시 자신의 것을 이해하고 공격할 것입니다)

장점:

1) 적은 텍스트

2) 더 많은 휴대성

3) 갑자기 다른 객체가 필요한 경우 생성에 금지가 없습니다.

4) 데이터의 정확도가 높을 수 있지만 문제는 개발자에게 있습니다.

빼기:

1) 나는 객체의 이름을 통해 필드에 액세스하는 것을 좋아하지 않습니다. 나는 정적을 통해 원합니다.

 
sergeev :


구조체 A
{
intv;
};

정적 A a;


?

그리고 문서에 따라 클래스에 대해 이것이 수행되지 않는 이유는 무엇입니까? 왜 클래스의 각 멤버를 꺼내서 초기화합니까?