Mikhail Tkachev : NB_M1은 이 클래스의 객체입니다. 안에 어떻게 넣나요?
내 생각에
bool NB_M1;
intOnInit ()
{
}
voidOnTick ()
{
NB_M1= new CIsNewBar( _Symbol , PERIOD_M1 ); // Эта строка потом будет в цикле для разных символовif (NB_M1) // (1) Если появился новый бар M1
{....}
......
}
3줄의 어드바이저가 있다면 당연히 OOP는 필요없겠죠)
이제 한 팔과 세 다리가 있는 고블린을 만들고 한 다리와 세 팔을 가진 고블린을 만들어야 하는 경우 예, 여기에서 OOP가 정말 도움이 될 것입니다. 비록 ... 또한 사실이 아닙니다.
그리고 그것은 무엇을 위해 필요합니까?
얼마나 많은 "줄"이 있는지는 중요하지 않습니다. ;)int 또는 double 만?
변수가 클래스의 객체 라면?
그리고 [OnInit()]이 실행되기 전에 그러한 객체의 수를 미리 알 수 없다면?
그리고 [OnInit()]이 실행되기 전에 생성자의 매개변수를 미리 알 수 없다면?
당신은 좋은 링크를 제공했으며 클래스 선언에 대한 좋은 예가 있습니다.
어쨌든 Globals는 OnInit() 전에 선언되고 나머지는 필요할 때마다 선언됩니다.
어쨌든 Globals는 OnInit() 전에 선언되고 나머지는 필요할 때마다 선언됩니다.
이론적으로 이것은 이해할 수 있습니다.
실제로 다음을 수행한 후:
'NB_M1' 선언은 전역 변수를 숨김 -> OnInit()의 줄당
'NB_M1'의 이전 선언 참조
Expert Advisor는 로컬 선언에 의해 숨겨지고 OnInit()에서 로컬로 초기화되지만 NB_M1이 전역(및 올바르게 초기화됨)인 것처럼 작동합니다.
이론상으로는 전혀 작동하지 않아야 합니다.
이론적으로 이것은 이해할 수 있습니다.
실제로 다음을 수행한 후:
'NB_M1' 선언은 전역 변수를 숨김 -> OnInit()의 줄당
'NB_M1'의 이전 선언 참조
Expert Advisor는 OnInit()의 로컬 선언에 의해 숨겨지지만 NB_M1이 전역이고 올바르게 초기화된 것처럼 작동합니다.
이론상으로는 전혀 작동하지 않아야 합니다.
얼마나 많은 "줄"이 있는지는 중요하지 않습니다. ;)백 두 줄의 코드가 있을 때 처음부터 이것을 조이고 싶지만 이미 이유를 잊어버렸기 때문에 이것을 조이고 나면 자연스럽게(?) 생각이 떠오를 것입니다. 간소화?" 아니면 안 됩니다.)
NB_M1이란 무엇입니까? 아마도 라이브러리에 이미 선언되어 있습니까? 그리고 일반적으로 코드가없는 청각 장애인과 같이 시각 장애인)
NB_M1 - 각 기호에 대한 새 막대의 시작을 결정하기 위한 CIsNewBar 클래스의 개체입니다. 아니요, 라이브러리에 선언되어 있지 않습니다.
첫 번째 게시물의 코드: https://www.mql5.com/ru/forum/160683/page1547#comment_23712294
NB_M1 - 각 기호에 대한 새 막대의 시작을 결정하기 위한 CIsNewBar 클래스의 개체입니다. 아니요, 라이브러리에 선언되어 있지 않습니다.
첫 번째 게시물의 코드: https://www.mql5.com/ru/forum/160683/page1547#comment_23712294
NB_M1이 클래스 내부에 선언되고 액세스 권한이 있음을 의미합니다.
이 클래스의 코드를 볼 수 있습니까?
NB_M1은 이 클래스의 객체입니다. 안에 어떻게 넣나요?
NB_M1은 이 클래스의 객체입니다. 안에 어떻게 넣나요?
내 생각에