CObject 를 제외하고 무엇을 의미하는지 명확하지 않지만 어쨌든 포인트 1-2는 오해의 소지가 있습니다. 1. 나쁜 습관일 뿐만 아니라 다형성이 필요한 경우 모든 기반(CObject 뿐만 아니라)에 필요합니다. 2. 그것은 상황을 변화시킵니다 - 1 참조. 3. final이 존재합니다.
CopyClose()를 사용하여 getPrice() 메서드를 변경했습니다. CopyBuffer()를 사용하고 있습니다. 이것은 주요 목표를 변경하지 않습니다.
따라서 getPrice() 메서드에서 "const" 키워드를 사용하면 " 'CopyBuffer' - 어떤 오버로드도 함수 호출에 적용될 수 없습니다 ."라는 오류가 발생합니다. CopyBuffer가 const 메서드가 아니고 const 메서드 내에서 non const 메서드를 호출할 수 없기 때문에 발생한다고 생각합니다.
또한 이것은 잘못되었습니다. MQL5에는 '최종' 키워드가 있습니다.
{
//--- class body
};
class CBar : public CFoo
{
//--- class body
};
CFoo가 최종이기 때문에 CBar가 컴파일되지 않습니다.
당신이 틀렸어요, whoroeder1.
기본에 가상을 추가하지 않으면 다형성을 잃게 됩니다. 메서드는 런타임에 동적으로 호출되지 않고 정적으로 호출됩니다.
이것은 whoroder1이 언급한 경고였습니다.
또한 이것은 잘못되었습니다. MQL5에는 '최종' 키워드가 있습니다.
1. 나쁜 습관일 뿐만 아니라 다형성이 필요한 경우 모든 기반(CObject 뿐만 아니라)에 필요합니다.
2. 그것은 상황을 변화시킵니다 - 1 참조.
3. final이 존재합니다.
MQL4에는 최종 키워드도 있지만 설명서에는 표시되지 않습니다(내가 아는 한). 아마도 빌드 업데이트에서 언급되었을 것입니다.
옳은!
MQL5용 빌드 1430이었습니다. 아마도 공통 컴파일러를 사용하는 MQL4의 경우 거의 같은 시간일 것입니다.
안녕하세요 여러분,
이 게시물과 똑같은 클래스에서 작업하고 있지만 "점수" 변수는 메서드입니다. 그 가치를 얻는 방법?
이것은 게시물 시작 부분의 코드입니다.
이것이 내가하려는 일입니다.
문제는 Compare() 메서드 내에서 getPrice()를 사용하는 방법입니다.
감사해요안녕하세요 여러분,
이 게시물과 똑같은 클래스에서 작업하고 있지만 "점수" 변수는 메서드입니다. 그 가치를 얻는 방법?
이것은 게시물 시작 부분의 코드입니다.
이것이 내가하려는 일입니다.
문제는 Compare() 메서드 내에서 getPrice()를 사용하는 방법입니다.
감사해요const 키워드로 getPrice() 메소드를 선언하십시오.
const 키워드로 getPrice() 메소드를 선언하십시오.
안녕하세요 @Alain Verleyen
CopyClose()를 사용하여 getPrice() 메서드를 변경했습니다. CopyBuffer()를 사용하고 있습니다. 이것은 주요 목표를 변경하지 않습니다.
따라서 getPrice() 메서드에서 "const" 키워드를 사용하면 " 'CopyBuffer' - 어떤 오버로드도 함수 호출에 적용될 수 없습니다 ."라는 오류가 발생합니다. CopyBuffer가 const 메서드가 아니고 const 메서드 내에서 non const 메서드를 호출할 수 없기 때문에 발생한다고 생각합니다.