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;


?

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