記事"オブジェクト指向プログラミング"についてのディスカッション - ページ 2

 
Urain:

ところで、ヘルプのOOPの説明に、このような基本的なパラダイムが取り上げられていないことに驚きました。

これはOOPではなく、あなたのモデルに対する認識における応用の結果です。
 
Urain:

1 いや、そうではなく、継承の使用だ。

2は、Compositionで、AssociationとAggregationと並ぶ3つのバインディングオプションの1つです。

ところで、このような基本的なパラダイムが、ヘルプのOOPの説明に含まれていないのは驚きだ。

これらは直接的なOOPの特徴というよりは、むしろプログラミングのトリックだ。

集約について:

オブジェクト指向プログラミングでは、集約(コンポジションまたはインクルージョンとも呼ばれる)とは、既存のクラスを入れ子にして新しいクラスを作成するテクニックを指します。集約はまた、「車にはボディとホイールとエンジンがある」というような「メンバーシップ関係」として語られることも多い。

新しいクラスのネストされたオブジェクトは、通常プライベートと宣言され、そのクラスを扱うアプリケーション・プログラマからはアクセスできなくなります。一方、クラスの作成者は、既存のクライアント・コードを邪魔することなく、これらのオブジェクトを変更することができます。さらに、ネストしたオブジェクトを実行時に置き換えることで、プログラムの動作を動的に変更することができます。継承メカニズムにはこのような柔軟性はありません。なぜなら、派生クラスにはコンパイル段階でチェックされる制約が設定されているからです。

集約に基づいて、外部オブジェクトに割り当てられたタスクが、この種のタスクを解決することに特化した内部オブジェクトに委譲される場合、委譲の方法が実装されます。

http://ru.wikipedia.org/wiki/Агрегирование_( プログラミング)

これが、すべてのOOPに浸透しているOOPの精神というわけだ。
 
sergeev:

構造体についてのヘルプを開き、構造体についての型変換も 読んでください。

メソッドのメンバは最初から利用可能でした。なぜそれを削除したいのですか?

IMHO、あなたは私を誰かと勘違いしている。
 
Urain:

アソシエーションやその他のクラスのリンク方法。

さて、何のためにあるのだろう?パターンはそうだが、これは初心者のレベルではない。
整数

1点:

m_size。

一般的な命名規則における接頭辞m_は、クラス・データ・メンバの接頭辞である。これは主に、メソッド内でローカル変数と クラスデータを明示的に区別するためのものです。

Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 
Integer:
構造体の中に関数を書くことは可能ですか?おそらくクラスへのポインタだろう。
書けるし、呼び出せる。そして、そうすべきだ。
削除済み  
Urain:

なぜスタイラーを 通さないのですか?

初心者が読むには難しいでしょう、彼はMEで1つのスタイルを見て、記事で別のスタイルを見ています。

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でプログラミングしていたときに、private変数やprotected変数に使われていたもので、それ以外の "一般的に受け入れられている "慣習はない。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
Суть венгерской нотации сводится к тому, что имена идентификаторов предваряются заранее оговорёнными префиксами, состоящими из одного или нескольких символов. При этом, как правило, ни само наличие префиксов, ни их написание не являются требованием языков программирования, и у каждого программиста (или коллектива программистов) они могут быть...
 

とても必要な記事だ!

私は開発者に、記事用の新しいカテゴリーを作ることを提案する。プログラミングの基礎(理論)」みたいな...。