MQL5의 OOP에 대한 질문 - 페이지 6

 
Dmitry Fedoseev :

자, 여기 있습니다.

이와 같이:

다음과 같이 호출할 수 있기 때문에 가능하지도 않지만 더 좋습니다.

참조로 포인터를 전달하는 경우 포인터에 대한 변수가 하나 더 필요합니다.

***

그리고 함수에서 객체를 생성하기 위해 함수에 대한 포인터를 전달해야 하는 경우 작동 방식은 다음과 같습니다.

그것이 실제로 당신이 OOP에 대해 알고 싶었지만 물어보기가 두려웠던 모든 것입니다)))

누누

 
void z(CObj* & o){
   o = new CObj();
}

그리고 모든 것이 작동합니다.

따라서 OOP에 대해 궁금한 점이 있으면 부끄러워하지 마십시오))))

 
널 포인터의 고전적인 역참조가 성공했습니다.
 
Vladimir Simakov :

따라서 OOP에 대해 궁금한 점이 있으면 부끄러워하지 마십시오))))

new 연산자를 통해 동적 객체 생성의 의미를 설명해주세요.

자동으로 객체를 생성할 때 클래스 객체는 스택에 생성되는데 , 실행 시간 면에서 동적 객체보다 빠릅니다.
객체를 동적으로 생성할 때 클래스 객체는 메모리(힙)에 생성되지만 OS 메모리 관리자를 사용하는 동안 프로세스가 더 느립니다.

질문은 다음과 같습니다.
자동 생성이 더 빠른 경우 동적 개체를 사용하는 것이 더 나은 이유는 무엇입니까?
명시적으로 메모리 할당을 제어합니까?
스택 오버플로 가능성을 배제하시겠습니까?
그리고 갑자기 물건을 잃지 않습니까?
스택이 오버플로되면 개체가 자동으로 삭제됩니까?

 
Roman :


뻔한 주제에 질리지 않으세요?

 
Artyom Trishkin :

뻔한 주제에 질리지 않으세요?

최대한 정확한 설명을 위해 질문을 수정했습니다.
이것에 나쁜 것이 있습니까? 편집할 수 있는 버튼이 있습니다. 바로 아이디어를 표현하는 규칙입니다.

 
Roman :

new 연산자를 통해 동적 객체 생성의 의미를 설명해주세요.

자동으로 객체를 생성할 때 클래스 객체는 스택에 생성되는데 , 실행 시간 면에서 동적 객체보다 빠릅니다.
객체를 동적으로 생성할 때 클래스 객체는 메모리(힙)에 생성되지만 OS 메모리 관리자를 사용하는 동안 프로세스가 더 느립니다.

질문은 다음과 같습니다.
자동 생성이 더 빠른 경우 동적 개체를 사용하는 것이 더 나은 이유는 무엇입니까?
명시적으로 메모리 할당을 제어합니까?
스택 오버플로 가능성을 배제하시겠습니까?
그리고 갑자기 물건을 잃지 않습니까?
스택이 오버플로되면 개체가 자동으로 삭제됩니까?

정적 메모리, 스택 및 힙에 대해 읽어보겠습니다.
 
Roman :

new 연산자를 통해 동적 객체 생성의 의미를 설명해주세요.

사용의 명확한 예 중 하나는 객체의 유형을 미리 알지 못하는 경우입니다.

다음은 도움말에서 이 주제에 대한 좋은 예입니다. https://www.mql5.com/en/docs/basis/operators/newoperator

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
//| Создание фигуры                                                  |
 
Vladimir Simakov :

누누

아하! 그러나 어떤 이유로 모든 것이 컴파일되고 작동합니다.

거기에 어떤 종류의 기적이 있는지 ... 아무도 모릅니다. 그러나 어제의 코드 예제 이후에이 주제의 다른 곳에서 가져온 것으로 추정되지만 실제로 어딘가에서 누락 된 것은 놀라운 일이 아닙니다.

***

예, 그리고 대화의 원래 내용을 잊지 않는다면 - 함수나 메서드에 대한 포인터 전달에 대해(그리고 거기에서 일종의 메모리 누수가 발생했다고 주장한 경우), 이 경우 &는 확실히 필요하지 않습니다.


 
Roman :

new 연산자를 통해 동적 객체 생성의 의미를 설명해주세요.

자동으로 객체를 생성할 때 클래스 객체는 스택에 생성되는데 , 실행 시간 면에서 동적 객체보다 빠릅니다.
객체를 동적으로 생성할 때 클래스 객체는 메모리(힙)에 생성되지만 OS 메모리 관리자를 사용하는 동안 프로세스가 더 느립니다.

질문은 다음과 같습니다.
자동 생성이 더 빠른 경우 동적 개체를 사용하는 것이 더 나은 이유는 무엇입니까?
명시적으로 메모리 할당을 제어합니까?
스택 오버플로 가능성을 배제하시겠습니까?
그리고 갑자기 물건을 잃지 않습니까?
스택이 오버플로되면 개체가 자동으로 삭제됩니까?

객체의 개수를 미리 알고 있고 프로그램 작동 중에 일정하면 새 객체가 필요하지 않습니다. 다른 모든 경우 - 새로운.