Urain : 프로그램의 한 곳에서 동적 객체를 생성했다면 다른 곳에서 그것을 파괴하는 것이 논리적이고, 그것이 모두 같은 기능 안에 있다는 것은 사실이 아니므로 포인터를 사용 하기 전에 간단한 규칙이 있는지 확인하십시오. 그것은 존재합니다.
맞습니다. 그러나 Reference book의 예에서 검사는 객체가 생성된 직후 수행됩니다. 프로그램의 한 위치와 한 기능 내에서. 그리고 위의 규칙은 여기에 적합하지 않습니다. 객체 생성 직후에 확인을 수행하려면 어떻게 해야 합니까? 그래서 new 연산자가 항상 새로운 객체를 생성하는 것은 아닙니까? =(반복)=
다음은 많은 것의 또 다른 예입니다.
//--- example for CArrayString::Add(string)#include <Arrays\ArrayString.mqh>//---voidOnStart ()
{
CArrayString *array= new CArrayString;
//---if (array== NULL )
{
printf ( "Object create error" );
return ;
}
맞습니다. 그러나 Reference book의 예에서 검사는 객체가 생성된 직후 수행됩니다. 프로그램의 한 곳과 한 기능 내에서. 그리고 위의 규칙은 여기에 적용되지 않습니다. 객체 생성 직후 확인을 수행하려면 어떻게 해야 합니까? new 연산자가 항상 새로운 객체를 생성(반복)하지는 않는다는 것이 밝혀졌습니다.
문제. 특정 매개변수 집합과 유형으로 부모 클래스에서 가상 함수 를 선언한 후 자손 클래스에서 해당 가상 함수에 대한 매개변수 수와 유형을 변경할 수 있습니까?
한편으로 Reference는 "가상 함수 는 파생 클래스에서 재정의될 수 있습니다.가상 함수에 대해 호출 할 함수 정의 의 선택 은 동적(런타임에)입니다. 일반적인 경우는 기본 클래스에, 파생 클래스에는 이 함수의 자체 버전이 있습니다. 반면에 핸드북에 제공된 예제는 가상 함수가 함수 정의 헤더 가 아니라 함수 정의 본문 에서 다른 경우를 다룹니다.
기술 링크. 클래스로 작업할 때 "래핑 메커니즘"의 예(검색으로 검색하지 않도록):
https://www.mql5.com/ru/forum/3555/page3#comment_57315
문제. 새로운 연산자. 핸드북에서는 new가 연산자라고 말합니다. 또한 예제에서 종종 이 연산자를 사용한 후 NULL 상수와 같은지 확인합니다. 예를 들어:
또한 " NULL 은 new 연산자로 생성된 개체에 대한 포인터와 비교할 수 있습니다"라고 말합니다.
new 연산자가 항상 새 객체를 생성하지는 않는다는 것이 밝혀졌습니다. 아니면 생성된 객체의 NULL과 같은지 확인하는 것이 이 또는 저 프로그래머 스타일의 기능이며 필수 사항은 아닙니다.
문제. 새로운 연산자. 핸드북에서는 new가 연산자라고 말합니다. 또한 예제에서 종종 이 연산자를 사용한 후 NULL 상수와 같은지 확인합니다. 예를 들어:
또한 " NULL 은 new 연산자로 생성된 개체에 대한 포인터와 비교할 수 있습니다"라고 말합니다.
new 연산자가 항상 새 객체를 생성하지는 않는다는 것이 밝혀졌습니다. 아니면 생성된 객체의 NULL과 같은지 확인하는 것이 이 또는 저 프로그래머 스타일의 기능이며 필수 사항은 아닙니다.
프로그램의 한 곳에서 동적 객체를 생성했다면 다른 곳에서 그것을 파괴하는 것이 논리적이고, 그것이 모두 같은 기능 안에 있다는 것은 사실이 아니므로 포인터를 사용 하기 전에 간단한 규칙이 있는지 확인하십시오. 그것은 존재합니다.
맞습니다. 그러나 Reference book의 예에서 검사는 객체가 생성된 직후 수행됩니다. 프로그램의 한 위치와 한 기능 내에서. 그리고 위의 규칙은 여기에 적합하지 않습니다. 객체 생성 직후에 확인을 수행하려면 어떻게 해야 합니까? 그래서 new 연산자가 항상 새로운 객체를 생성하는 것은 아닙니까? =(반복)=
다음은 많은 것의 또 다른 예입니다.
맞습니다. 그러나 Reference book의 예에서 검사는 객체가 생성된 직후 수행됩니다. 프로그램의 한 곳과 한 기능 내에서. 그리고 위의 규칙은 여기에 적용되지 않습니다. 객체 생성 직후 확인을 수행하려면 어떻게 해야 합니까? new 연산자가 항상 새로운 객체를 생성(반복)하지는 않는다는 것이 밝혀졌습니다.
다음은 많은 것의 또 다른 예입니다.
그런 가능성이 있습니다. 첫 번째 단락의 도움말 입니다.
확인. 연산자의 동작이 함수의 동작과 비슷하다는 것이 밝혀졌습니다. 생성될 수도 있고 생성되지 않을 수도 있습니다.
예를 들어 개체에 대한 메모리가 충분하지 않았습니다.
문제. 특정 매개변수 집합과 유형으로 부모 클래스에서 가상 함수 를 선언한 후 자손 클래스에서 해당 가상 함수에 대한 매개변수 수와 유형을 변경할 수 있습니까?
한편으로 Reference는 "가상 함수 는 파생 클래스에서 재정의될 수 있습니다. 가상 함수에 대해 호출 할 함수 정의 의 선택 은 동적(런타임에)입니다. 일반적인 경우는 기본 클래스에 , 파생 클래스에는 이 함수의 자체 버전이 있습니다. 반면에 핸드북에 제공된 예제는 가상 함수가 함수 정의 헤더 가 아니라 함수 정의 본문 에서 다른 경우를 다룹니다.
문제. 특정 매개변수 집합과 유형으로 부모 클래스에서 가상 함수 를 선언한 후 자손 클래스에서 해당 가상 함수에 대한 매개변수 수와 유형을 변경할 수 있습니까?