당신은 아주 정확하게 작성되었습니다. 객체를 반환하려는 getCopy() 함수에서 오류가 발생했습니다. 할당을 재정의한 후 이미 포인터를 반환하고 오류가 사라집니다.
--
여기서 오해는 언어에 정적 개체 및 동적 개체의 필드에 액세스하기 위한 구문의 동일한 표현과 관련된 일부 "구문적 반발"이 있다는 사실로 인해 발생할 수 있습니다(화살표가 아닌 점을 통해, 방법, 정말 편리합니다). 이것은 습관이 되어 객체와 객체에 대한 포인터를 구별하는 명확성을 다소 둔하게 할 수 있습니다. 이는 차례로 정적(또는 자동) 개체 변수에 무언가를 할당할 수 있다는 착각을 일으킬 수 있습니다. 복사 생성자가 정의되지 않는 한 할당 왼쪽에 있는 개체 변수는 전혀 그렇지 않습니다.
다른 지느러미에 대한 가격 값을 어떻게 얻을 수 있습니까? 악기 동기화 ? 예를 들어, 과거의 특정 시점에 다양한 상품에 대한 바의 종가를 의미합니다. CopyClose 기능 을 사용하고 막대 인덱스 로 값을 얻는 것은 완전히 정확하지 않습니다. 다른 기기에서 누락된 막대가 있을 수 있기 때문입니다. 내가 기억하는 한 mql4에는 BarShift 시간 함수가 있었는데 mql5에는 아날로그가 있습니까?
즉, 복사 생성자의 역할이 오버로드된 할당 연산자에 의해 수행되도록 해야 합니까?
1이 화면에 표시됩니다. 복사 생성자가 실행됩니다.
나는 이것이 "2) 오버로드 된 할당 연산자 로 라인의 주석 처리를 제거하는 것"이 이론상 도움이 되지 않아야 한다고 생각합니다.
뭐가 맞는지 모르겠지만 VS에서 복사 생성자의 역할은 할당 연산자에 의해 수행되지 않습니다.
1이 화면에 표시됩니다. 복사 생성자가 실행됩니다.
나는 이것이 "2) 과부하 할당 연산자 로 드레인의 주석 처리를 제거"하는 것이 이론상 도움이 되지 않는다고 생각합니다.
여기에서 복사 생성자가 실행됩니다.
fn() 함수 내부가 아닙니다.여기에서 복사 생성자가 실행됩니다.
fn() 함수 내부가 아닙니다.이 변형에서:
"할당 생성자 실행됨" 줄이 표시되지 않습니다.그리고 이것이 나온 방법:
WWer , VS와 유추하여 특정 상황을 살펴봐야 하는 경우 복사/할당에 대한 구체적인 예를 들어야 합니다. 무엇을 할지는 그 자리에서 결정됩니다.왜 초기화합니까? 이것은 단지 이것을 위한 생성자가 있는 클래스의 인스턴스입니다.
그렇다면 이 목적을 위해 복사 생성자를 작성하는 것이 어떻게 올바른가요?
당신은 아주 정확하게 작성되었습니다. 객체를 반환하려는 getCopy() 함수에서 오류가 발생했습니다. 할당을 재정의한 후 이미 포인터를 반환하고 오류가 사라집니다.
--
여기서 오해는 언어에 정적 개체 및 동적 개체의 필드에 액세스하기 위한 구문의 동일한 표현과 관련된 일부 "구문적 반발"이 있다는 사실로 인해 발생할 수 있습니다(화살표가 아닌 점을 통해, 방법, 정말 편리합니다). 이것은 습관이 되어 객체와 객체에 대한 포인터를 구별하는 명확성을 다소 둔하게 할 수 있습니다. 이는 차례로 정적(또는 자동) 개체 변수에 무언가를 할당할 수 있다는 착각을 일으킬 수 있습니다. 복사 생성자가 정의되지 않는 한 할당 왼쪽에 있는 개체 변수는 전혀 그렇지 않습니다.
C++는 반환값으로 fn() 함수 내부에 q2 객체를 생성합니다. 이것이 복사 생성자를 처리하는 이유입니다.
MQL5에서는 오브젝트가 외부에서 구성되기 때문에 차이점이 있습니다. 제거하다.
관심 있는 사람들을 위해: 이를 반환 값 최적화 라고 합니다.
동료들, 좋은 하루!
다른 지느러미에 대한 가격 값을 어떻게 얻을 수 있습니까? 악기 동기화 ? 예를 들어, 과거의 특정 시점에 다양한 상품에 대한 바의 종가를 의미합니다. CopyClose 기능 을 사용하고 막대 인덱스 로 값을 얻는 것은 완전히 정확하지 않습니다. 다른 기기에서 누락된 막대가 있을 수 있기 때문입니다. 내가 기억하는 한 mql4에는 BarShift 시간 함수가 있었는데 mql5에는 아날로그가 있습니까?
시간을 알면 이 기능을 사용할 수 있습니다.
시작 날짜 및 필요한 항목 수로 참조
int 복사 닫기 (
끈 symbol_name , // 기호 이름
ENUM_TIMEFRAMES timeframe , // 기간
날짜 시간 start_time , // 어떤 날짜부터
정수 count , // 복사할 양
더블 닫기_배열[] // 종가를 복사하기 위한 배열
);
시간을 알면 이 기능을 사용할 수 있습니다.
시작 날짜 및 필요한 항목 수로 참조
int 복사 닫기 (
끈 symbol_name , // 기호 이름
ENUM_TIMEFRAMES timeframe , // 기간
날짜 시간 start_time , // 어떤 날짜부터
정수 count , // 복사할 양
더블 닫기_배열[] // 종가를 복사하기 위한 배열
);
종가[i] EUR/USD와 종가[i] GBP/USD의 비율을 구하고 싶지만 지수 i를 참조하면 누락된 막대가 있기 때문에 막대가 여전히 시간상 다를 수 있다고 가정해 보겠습니다.
즉, 각 막대의 루프에서 CopyClose (Symbol, 0, date_of_current_bar, 1 , array)를 사용해야 합니까?
내가 보기에는 오래된 시간대의 막대가 거의 "사라지지" 않는 것 같습니다. 그러나 그렇습니다.. 표시된 날짜부터 하나의 막대를 얻습니다. 더 정확하게는 그로부터 가깝습니다.
또 다른 옵션은 CopyTime()을 통해 이 막대의 시간을 동시에 수신하고 동기화되도록 비교하는 것입니다.
그리고 세 번째 옵션(아마도 촉진)은 구조에서 CopyRates를 즉시 사용하는 것 입니다.