PLOです。アプリケーションの問題 - ページ 9

 

でも、本当はこんなことする必要ないんですよね...。

機能の仮想化を利用するべし

追伸:あと、暗黙の型変換 で普通のプログラムは組めません。あくまでバリエーションとして...GoToのような...運営者

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
AlexSTAL:
2) プログラムが終了する前に削除することが主...しかし、このポインタを関数内で作成した場合、グローバルな場所に保存するように配慮する必要がある...。


私もそう思っていました。配列はグローバルなようですが、漏れがありますね。それとも、アレイだけでなく、他のものも必要なのでしょうか?

 
本当に笑わせてくれますね ))))
 
Interesting:

私もそう思っていました。配列はグローバルなようですが、漏れがありますね。それとも、アレイだけでなく、何か別の原因があるのでしょうか?

他のところから漏れているのでは......?

この方法で作成したクラスは何百とありますが、どこにも漏れたことはありません...。

簡単な例で試してみると...。

 
TheXpert:
本当に笑わせてくれますね ))))
たまにはいいこともあるもんだ...。しびれる
 
AlexSTAL:

他のところから漏れているのでは......?

この方法で作成したクラスは何百とありますが、どこにも漏れたことはありません...。

簡単な例で試してみると...。

EAのアンインストールブロックにこのコードを入れて、取り除いたと思います(今のところ問題はありません)。

  for (int i=0; i<ArraySize(ArrShapes);i++)  
  {
  ArrShapes[i].Free(ArrShapes[i]);
  }
 

結局、こんな感じで、とても理解できないまま終わってしまいました。

一言で言えばモンスターです...。:)

ファイル:
Forum-2.mq5  11 kb
 

ともかく、この問題を議論した結果、https://www.mql5.com/ru/forum/3566/page6#comment_58280、SRに応募があった。

 
Yedelkin:

一般的には、問題点を議論した後、https://www.mql5.com/ru/forum/3566/page6#comment_58280、SRにアプリケーションを送った。

1.どうだろう、どうだろう。

セキュリティのためにわざわざ機能を犠牲にするようなことは、開発者はしないと思います(ある意味正しいことです)。

おそらく、Aleksander(AlexSTAL)が提案した方法であれば、この問題は解決できたでしょう(多少面倒なことは考慮しないことにします)。

しかし、そうすることで、せいぜい子孫のイベントやメソッドにアクセスできるようになる程度だ(その場合、祖先で宣言されていないプロパティや変数などは使われる可能性は低い)。

しかし、ほとんどの場合、実験しなければならないでしょう。


2.今あるものをベースに、別のことをする、2つの選択肢があると思います。

а.あるクラスのオブジェクトのみを含む特殊な配列(特定の型の子孫)を使用する。

この場合、配列内のオブジェクトのあらゆるプロパティ、メソッド、イベントにアクセスすることができます(同質であるため)。

б.もし、ある基本クラスの子孫である、異なる型のオブジェクトの配列を扱う必要がある場合、それぞれの子孫の型を格納するために、追加の配列を作成する必要があります。

したがって、主配列では、すべてのオブジェクトに共通する機能(AUTOGENとQUALDAを除く)のみにアクセスし、特殊配列では、それぞれのタイプの子孫の全機能にアクセスすることができます。

私の理解では、いくつかのテーブルからなるデータベースのようなものができ、一対多と多対一の接続方法があります。しかし、この場合、全体の同期がきちんととれているかどうかが問題になります。さらに、即席データベースのすべてのアレイ(テーブル)をどのような基準でリンクさせるかを決めなければならない。

バインディングは、例えば、ポインタや特殊なハンドル(七面鳥で使われるようなもの)に基づく、何らかのユニークな識別子に基づくことができる。

追記

ちなみに、ハンドルでの考え方は十分だと思います(ポインターをオブジェクトを扱うすべての基本として考えても)。ハンドルは、ユニークなオブジェクトを類似のオブジェクトから、またはオブジェクトのリスト全体から区別できるようにする必要があります。

 
TheXpert:
本当に笑わせてくれますね ))))
時々、本当に自分がおかしくなってしまう、そんな時もあっていいんです。:)
理由: