나는 내일(10년이 아니라) 구현될 수 있는 가장 간단한 옵션을 제안했고 C++와 외부 유사성을 가질 것입니다(그렇지 않으면 왜 아무 것도 변경하지 않는 이유). 또한 operator*()가 수행되지 않았고 수행되지 않을 경우(포럼에 이에 대한 정보가 있음) operator->()가 갑자기 구현되는 이유가 명확하지 않습니다(같은 순서임)
이 형식에서는 내일이나 10년 후에 필요하지 않습니다. 그리고 외부 유사성은 필요하지 않으며 기회가 필요합니다.
C++에서 STL을 적어도 부분적으로 전송하려면. 그리고 그 문제는 operator->에만 있는 것이 아니라 여전히 필요한 것이 많다.
class A
{};
class B : public A
{};
voidOnStart ()
{
A* ab = new B;
A* aa = new A;
B* bb = ab; // ok
B* ba1 = dynamic_cast <B*>(aa);
Print (ba1 ? "ba1 ok" : "ba1 bad cast" ); // bad cast
B* ba2 = aa; // здесь неконтролируемый вылетPrint (ba2 ? "ba2 ok" : "ba2 bad cast" );
}
암시적 캐스트에 동적 캐스트가 포함되어 있음을 알 수 있습니다.
하지만
첫째, 동적 캐스트가 언어에 명확하게 존재하는 경우 포함된 이유가 명확하지 않습니다.
둘째, 함수의 경우 동적 캐스트 오류는 제어할 수 있지만(출력은 잘못된 포인터임) 암시적 캐스팅은 불가능하기 때문에 매우 심하게 포함되어 있습니다! 확인되지 않은 예외가 발생하기 때문에
2018.11.23 20:31:47.348 test(AUDNZD,M5) 'test.mq5'에서 잘못된 포인터 캐스팅(17,11)
그에게서 정확히 제로 감각이 있습니다.
유효하지 않은 포인터를 함수로 제공하거나 암시적 캐스트에서 동적 캐스트를 제외 하고 컴파일 오류 를 제공해야 합니다.
예, 이 문제가 있는 경우 OOP로 작업하는 것이 제대로 제어되지 않고 신뢰할 수 없습니다. 어딘가에서 프로그램의 한 곳에서 유형을 변경했는데 어딘가에서 폭발했습니다. 이 예에서는 여전히 목발의 도움으로 어떻게든 벗어날 수 있습니다. 포인터의 간단한 할당이 있으며 모든 것이 눈 앞에 있습니다. 그리고 일반적인 경우 포인터가 어떤 함수에 전달되고 알 수 없는 대상으로 동적으로 캐스트되면 어떤 식으로든 포인터를 제어할 수 없습니다.
당신은 부주의하다
아니면 당신. 요점으로 바로 가자
나는 내일(10년이 아니라) 구현될 수 있는 가장 간단한 옵션을 제안했고 C++와 외부 유사성을 가질 것입니다(그렇지 않으면 왜 아무 것도 변경하지 않는 이유). 또한 operator*()가 수행되지 않았고 수행되지 않을 경우(포럼에 이에 대한 정보가 있음) operator->()가 갑자기 구현되는 이유가 명확하지 않습니다(같은 순서임)
이 형식에서는 내일이나 10년 후에 필요하지 않습니다. 그리고 외부 유사성은 필요하지 않으며 기회가 필요합니다.
C++에서 STL을 적어도 부분적으로 전송하려면. 그리고 그 문제는 operator->에만 있는 것이 아니라 여전히 필요한 것이 많다.
operator->는 스마트 포인터를 향한 첫 번째 단계가 될 것입니다.
사실, 지금과 같은 형태의 암시적 캐스트를 사용하면 모든 것이 썩 좋지 않습니다.
암시적 캐스트에 동적 캐스트가 포함되어 있음을 알 수 있습니다.
하지만
첫째, 동적 캐스트가 언어에 명확하게 존재하는 경우 포함된 이유가 명확하지 않습니다.
둘째, 함수의 경우 동적 캐스트 오류는 제어할 수 있지만(출력은 잘못된 포인터임) 암시적 캐스팅은 불가능하기 때문에 매우 심하게 포함되어 있습니다! 확인되지 않은 예외가 발생하기 때문에
2018.11.23 20:31:47.348 test(AUDNZD,M5) 'test.mq5'에서 잘못된 포인터 캐스팅(17,11)
그에게서 정확히 제로 감각이 있습니다.
유효하지 않은 포인터를 함수로 제공하거나 암시적 캐스트에서 동적 캐스트를 제외 하고 컴파일 오류 를 제공해야 합니다.
예, 이 문제가 있는 경우 OOP로 작업하는 것이 제대로 제어되지 않고 신뢰할 수 없습니다. 어딘가에서 프로그램의 한 곳에서 유형을 변경했는데 어딘가에서 폭발했습니다. 이 예에서는 여전히 목발의 도움으로 어떻게든 벗어날 수 있습니다. 포인터의 간단한 할당이 있으며 모든 것이 눈 앞에 있습니다. 그리고 일반적인 경우 포인터가 어떤 함수에 전달되고 알 수 없는 대상으로 동적으로 캐스트되면 어떤 식으로든 포인터를 제어할 수 없습니다.
점은 MQL의 범용 연산자입니다.
찾는 것과 같습니다. 우리는 그것이 보편적이라고 말할 수 있습니다: 그것은 객체와 포인터 모두와 함께 작동합니다.
그리고 당신은 그렇게 말할 수 있습니다. 객체에 대해서만 작동하고 포인터가 암시적으로 객체에 캐스팅되는 경우에만 포인터에 대해 작동합니다. 언제
기입
하지 않은 것과 동일합니다.
ㅏ
그런 구조가 있다
파일에 쓰려고 할 때 변수 OrdersInfo 순서가 있습니다.
컴파일러 출력: 'order' - 개체를 포함하는 구조는 허용되지 않습니다.
무엇이 문제가 될 수 있습니까?
그런 구조가 있다
파일에 쓰려고 할 때 변수 OrdersInfo 순서가 있습니다.
컴파일러 출력: 'order' - 개체를 포함하는 구조는 허용되지 않습니다.
무엇이 문제가 될 수 있습니까?
여기
https://www.mql5.com/ru/docs/files/filewritestruct
제한 사항이 나열됩니다.
VPS 의 MT4 트래픽이 음수이고 기록 다운로드가 시작되었으며 카운터가 증가하기 시작했습니다 ...