기고글 토론 "객체 지향 프로그래밍의 기초" - 페이지 2

 
Urain:

그건 그렇고, 나는 그러한 근본적인 패러다임이 도움말의 OOP에 대한 설명에서 다루어지지 않는다는 사실에 놀랐습니다.

이것은 OOP가 아니라 모델에 대한 인식에 대한 적용의 결과입니다.
 
Urain:

1 아니요, 상속을 사용하는 것입니다.

2가 더 따뜻하고 연관 및 집계와 함께 세 가지 바인딩 옵션 중 하나 인 컴포지션입니다.

그런데 이러한 기본적인 패러다임이 도움말의 OOP 설명에서 다루어지지 않는다는 사실에 놀랐습니다.

이는 직접적인 OOP 기능이라기보다는 프로그래밍 트릭입니다.

집계와 관련하여:

객체 지향 프로그래밍에서 집계(구성 또는 포함이라고도 함)는 중첩을 통해 기존 클래스에서 새로운 클래스를 만드는 기법을 말합니다. 집계는 종종 "자동차에는 차체, 바퀴, 엔진이 있다"는 식으로 '멤버십 관계'라고도 합니다.

새 클래스의 중첩된 객체는 일반적으로 비공개로 선언되어 해당 클래스로 작업하는 애플리케이션 프로그래머가 접근할 수 없습니다. 반면에 클래스 작성자는 기존 클라이언트 코드를 방해하지 않고 이러한 객체를 수정할 수 있습니다. 또한 런타임에 중첩된 객체를 교체하면 프로그램의 동작을 동적으로 변경할 수 있습니다. 상속 메커니즘은 컴파일 단계에서 검사되는 파생 클래스에 대한 제한이 설정되어 있기 때문에 이러한 유연성이 없습니다.

통합을 기반으로 외부 객체에 할당된 작업이 이러한 종류의 작업을 해결하는 데 특화된 내부 객체에 위임되는 위임 방법이 구현됩니다.

http://ru.wikipedia.org/wiki/Агрегирование_( 프로그래밍)

이것이 바로 모든 OOP에 스며들어 있는 OOP의 정신입니다.
 
sergeev:

구조체에 대한 도움말을 열고 구조체에 대한 유형 변환도 읽어보세요.

메서드의 멤버는 처음부터 사용할 수 있었습니다. 왜 제거하려고 하나요?

IMHO, 당신은 저를 다른 사람과 혼동하고 있습니다.
 
Urain:

연결 및 기타 수업 연결 방법.

글쎄, 그것은 무엇입니까 ) . 여기에 패턴이 있지만 초보자의 수준은 아닙니다.
정수:

하나의 포인트:

m_size.

일반적인 명명 규칙에서 접두사 m_은 클래스 데이터 멤버에 접두사로 붙습니다. 주로 메서드에서 지역 변수와 클래스 데이터를 명시적으로 구분하기 위한 것입니다.

Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 
Integer:
구조체에서 함수를 작성할 수 있나요? 아마도 클래스를 가리키는 포인터일 것입니다 - 저는 그것을 보았고, 시도해 보았지만 모르는 것이 좋습니다.
직접 작성하고 호출할 수 있습니다. 그리고 그렇게 해야 합니다.
[삭제]  
Urain:

스타일러를 통해 코드가 실행되지 않는 이유는 무엇인가요?

초보자는 읽기가 어려울 것이며, 그는 ME에서 한 스타일을보고 기사에서 다른 스타일을 봅니다.

ZY 이 기사는 클래스 연결 문제를 밝히지 않습니다.

물론 일반적으로 OOP는 복잡한 주제이므로 간단한 언어로 설명하기는 쉽지 않지만 어딘가에서 시작해야합니다.


소스 스타일 수정
 
좋은 기사... OOP에 대해 쉽게 이해할 수있게 해주셔서 감사합니다...
 
TheXpert:
용도가 무엇인가요? 패턴은 맞지만 이것은 초보자의 수준이 아닙니다.

잠시만요:

m_size.

일반적인 명명 규칙에서 접두사 m_은 클래스 데이터 멤버에 붙습니다. 주로 메서드에서 지역 변수와 클래스 데이터를 명시적으로 구분하기 위한 것입니다.


m_ 접두사는 MFC에서 프로그래밍할 때 사용되었으며, 비공개 및 보호 변수에 적용되었으며, 다른 "일반적으로 허용되는" 규칙은 없습니다. MFC가 사라진 후 모든 사람들은 이 멍청한 m_에 대해 잊어버렸습니다(감사합니다)). 믿기지 않는다면 예제를 다운로드하여 직접 확인해 보세요(MFC에 대한 섹션도 있습니다) http://archive.msdn.microsoft.com/vcsamples.

Visual C++ Samples and Related Documentation for Visual Studio 2010 - Home
  • archive.msdn.microsoft.com
French, German, Italian, Japanese, Korean, Russian, Simplified Chinese, Spanish, Traditional Chinese The Microsoft Visual C++ 2010 Sample Library provides code examples for applications and tools showing the capabilities of Visual C++ and the libraries and technologies it supports. Visual Studio 2010 Samples are now live! Click on the links...
 
VDev:

접두사 m_는 MFC에서 프로그래밍 할 때 사용되었으며 개인 및 보호 된 변수에 적용되었으며 다른 "일반적으로 허용되는"규칙은 없습니다. MFC가 사라진 후, 이 모든 멍청한 m_는 잊혀졌습니다, 감사합니다.) 믿지 않으시는 분들은 예제를 다운로드하여 직접 확인해 보세요(MFC에 대한 섹션도 있습니다) http://archive.msdn.microsoft.com/vcsamples.

아니요. При чем тут MFC? https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%BD%D0%B3%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F_%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F

는 편리함 그 이상도 이하도 아닙니다. 모든 프로그래밍 회사마다 자체 규칙이 있을 수 있습니다.

Венгерская нотация — Википедия
  • ru.wikipedia.org
Суть венгерской нотации сводится к тому, что имена идентификаторов предваряются заранее оговорёнными префиксами, состоящими из одного или нескольких символов. При этом, как правило, ни само наличие префиксов, ни их написание не являются требованием языков программирования, и у каждого программиста (или коллектива программистов) они могут быть...
 

매우 필요한 기사!

개발자에게 새로운 기사 카테고리를 만들 것을 제안합니다. "프로그래밍의 기초(이론)와 같은 것"....