앗 - 페이지 8

 

함수 매개변수에서 참조를 반환하는 방법은 무엇입니까?

이 코드는 문제를 일으킵니다.

CMy* obj; // global
bool func(CMy* obj)
{
...
  obj = new CMy();
...
}

나중에 obj로 작업하려고 할 때 잘못된 포인터 액세스입니다.

& 추가를 시도했습니다.

 bool func(CMy* & obj)

그것이 작동하는 방식입니다. 설명서의 함수 매개변수에서 참조 반환을 찾지 못했습니다.

C ++에서 유추하여 다음 주제를 찾았습니다. http://stackoverflow.com/questions/5286453/returning-a-pointer-as-a-function-parameter

그러나 **는 당신을 위해 작동하지 않습니다. *& 그녀 대신?

5.00.630x64

returning a pointer as a function parameter
returning a pointer as a function parameter
  • stackoverflow.com
Im trying to return the data pointer from the function parameter: bool dosomething(char *data){ int datasize = 100; data = (char *)malloc(datasize); // here data address = 10968998
 
flops :

설명서의 함수 매개변수에서 참조 반환을 찾지 못했습니다.

MQL5 참조 / 언어 기본 / 데이터 유형 / 링크에 대해 이야기하고 있습니다. & 수정자와 this 키워드 ?
 
flops :

함수 매개변수에서 참조를 반환하는 방법은 무엇입니까?

이 코드는 문제를 일으킵니다:

나중에 obj로 작업하려고 할 때 잘못된 포인터 액세스입니다.

& 추가를 시도했습니다.

그것이 작동하는 방식입니다. 설명서의 함수 매개변수에서 참조 반환을 찾지 못했습니다.

C ++에서 유추하여 다음 주제를 찾았습니다. http://stackoverflow.com/questions/5286453/returning-a-pointer-as-a-function-parameter

그러나 **는 당신을 위해 작동하지 않습니다. *& 그녀 대신?

5.00.630x64

IMHO (오래전)

인수를 통해 포인터를 전달할 수 없으며 링크를 생성할 수 있습니다. 클래스의 새 인스턴스를 참조에 바인딩할 수 없습니다. 이렇게 하면 옵션이 남습니다.

CMy* func()
{
...
  CMy* obj;
  obj = new CMy();
   return (obj);
...
}
 
Vigor :

나는 OOP의 지지자입니다. 왜냐하면 나 자신을 위해 밑바닥부터 프로그래밍의 편리함을 이해했기 때문입니다. 개체 상호 작용 인터페이스에서 클래스 구현에 이르기까지.

인터페이스가 클래스 외부에 있지 않습니까?
 
220Volt :

IMHO (오래전)

인수를 통해 포인터를 전달할 수 없으며 링크를 생성할 수 있습니다. 클래스의 새 인스턴스를 참조에 바인딩할 수 없습니다. 이렇게 하면 옵션이 남습니다.

질문을 잘못 입력했습니다.

참조에 의한 포인터 전달 . *& 와 함께 변형을 사용할 수 있는지 궁금합니다. 향후 버전에서 다룰 예정입니까? C++에서는 그러한 구성이 합법적인 것처럼 보입니다.

 
Yedelkin :
MQL5 참조 / 언어 기본 / 데이터 유형 / 링크에 대해 이야기하고 있습니다. & 수정자와 this 키워드 ?

정보가 좀 있었으면...


기사에서

https://www.mql5.com/ru/docs/basis/function/ParameterPass

개체 작업에 대한 정보를 추가할 수도 있습니다.

Документация по MQL5: Основы языка / Функции / Передача параметров
Документация по MQL5: Основы языка / Функции / Передача параметров
  • www.mql5.com
Основы языка / Функции / Передача параметров - Документация по MQL5
 
Andrei01 :
인터페이스가 클래스 외부에 있지 않습니까?

그리고 그것은 객체에 대해 무엇을 변경합니까? 이 해석에서 인터페이스는 설명이 객체의 속성을 명확하게 정의하기 때문에 데이터 유형입니다. 그리고 사실, 그것은 객체의 외부 행동을 설정합니다.

내가 인용한 자료에서 OOP의 반대자들은 알고리즘을 구현하지 않고 는 클래스 구조를 끝까지 즉시 생성하는 것은 불가능하다고 언급했는데 이것이 OOP 환경에서 리팩토링이 자주 실행되는 이유이며 따라서 클래스는 영구적인 재작업으로 개발 속도를 늦추는 것입니다. . 그리고 실제로 그렇습니다. 새로운 것을 구현하고 그 결과가 무엇인지 이해하지 못하면 클래스를 두 번 이상 다시 실행해야 합니다.

좋은 클래스 아키텍처를 만드는 것은 초보자에게 걸림돌입니다. 사실 OOP 프로그래밍의 의미는 자신만의 " 언어 "를 작성하는 것입니다. 인터페이스는 작업을 위해 설계된 언어의 본질입니다. 인터페이스는 코드에서 실행되어야 하는 클래스에 대한 계약으로 클래스 "유형" 구성으로 이해되어서는 안 됩니다(MQL에서는 존재하지 않으며 가상 메소드는 다음과 인터페이스의 역할을 할 수 있습니다. 스트레칭).

예를 들어, 새로운 Expert Advisors를 생성하기 위한 "언어"를 생성할 수 있습니다. 이를 통해 몇 줄의 개체에서 Expert Advisor의 일반 구성표를 조합할 수 있습니다. 미리 만들어진 신호 및 조건을 사용하거나 유추하여 고유한 신호 클래스를 사례별로 개발하고 고유한 라이브러리를 만들 수 있습니다. 이 기회는 MQL5 마법사 가 제공합니다.

종종 응용 프로그램을 구축하기 위한 체계가 이미 발명되었으며 "OOP 프로그래밍"은 본질적으로 제한된 자유도를 가진 기존 클래스를 사용하여 고유한 기능을 작성하는 것으로 요약됩니다. 이는 편리합니다. 이것이 프레임워크가 인기 있는 이유입니다. 응용 프로그램 아키텍처를 개발할 때 불필요한 문제와 골칫거리에서 벗어날 수 있습니다. 사실, 자신만의 것을 작성하는 것은 프레임워크 클래스 중 하나에 대한 클래스 상속자를 만들고 전체 애플리케이션 로직에 이미 구축된 특정 콜백 메소드의 구현을 작성하는 것입니다(OnInit, OnTick이 이에 대한 예입니다).

 
Vigor :

...

좋은 클래스 아키텍처를 만드는 것은 초보자에게 걸림돌입니다. 사실 OOP 프로그래밍의 의미는 자신만의 " 언어 "를 작성하는 것입니다. 인터페이스는 작업을 위해 설계된 언어의 본질입니다. 인터페이스는 코드에서 실행되어야 하는 클래스에 대한 계약으로 클래스 "유형" 구성으로 이해되어서는 안 됩니다(MQL에서는 존재하지 않으며 가상 메소드는 다음과 인터페이스의 역할을 할 수 있습니다. 스트레칭).

...

오히려 OOP의 요점은 자체 아키텍처를 작성하는 것입니다. 명확하고 명확하며 직관적인 아키텍처를 갖게 되면 모든 것이 즉시 제자리에 들어가고 프로젝트 의 복잡성이나 규모가 더 이상 억제 요인이 되지 않습니다. 그러나 이 매우 명확한 아키텍처를 달성하려면 클래스를 계속해서 다시 작성해야 하며 점차적으로 이 초기 모호한 이상에 접근해야 합니다.
 
C-4 :
오히려 OOP의 요점은 자체 아키텍처를 작성하는 것입니다. 명확하고 명확하며 직관적인 아키텍처를 갖게 되면 모든 것이 즉시 제자리에 들어가고 프로젝트의 복잡성이나 규모가 더 이상 억제 요인이 되지 않습니다. 그러나 이 매우 명확한 아키텍처를 달성하려면 클래스를 계속해서 다시 작성해야 하며 점차적으로 이 초기 모호한 이상에 접근해야 합니다.
+1