PLO - ページ 8 12345678 新しいコメント Flops 2012.04.22 22:17 #71 関数のパラメータで参照を返すにはどうしたらよいですか?このようなコードでは問題が発生します。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.630 x64 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 Yedelkin 2012.04.23 04:34 #72 flops: ドキュメントの関数のパラメータにリファレンスリターンが見つかりませんでした。 これのことですね。MQL5リファレンス / 言語の基礎 / データ型 / リファレンス。修飾語 & とキーワード this? 削除済み 2012.04.23 04:58 #73 flops:関数のパラメータで参照を返すにはどうしたらよいですか?このようなコードでは問題が発生します。obj を操作しようとすると、無効なポインタ・アクセスが発生します。&を追加してみた。 効くんです。関数のパラメータでの参照戻り値はドキュメントにはありませんでした。類推するに、C++でこんなトピックがありました。http://stackoverflow.com/questions/5286453/returning-a-pointer-as-a-function-parameter。しかし、あなたの**はうまくいきません。の代わりに*&ですか?5.00.630 x64IMHO(昔の話です)。引数でポインタを渡すことはできず、参照を作成します。クラスの新しいインスタンスを参照にバインドすることはできません。そうすると、次のような道が残ります。 CMy* func() { ... CMy* obj; obj = new CMy(); return(obj); ... } Andrei01 2012.04.23 08:15 #74 Vigor:私はボトムアップでプログラミングすることの利便性を理解したため、OOPの支持者です。オブジェクト相互作用のインターフェースからクラスの実装まで。 インターフェースはクラスの外部にあるのでは? Flops 2012.04.23 08:16 #75 220Volt:IMHO(昔の話です)。引数でポインターを渡すことはできず、参照を作成することができます。そのクラスの新しいインスタンスは、参照に添付することができません。そうすると、こんな選択肢が残されています。質問の定義を間違えていました。ポインタの参照渡しを 行う。というのは、*&の バリアントを使ってもいいのかどうか、また、さらなるバージョンアップでカバーされることはないのでしょうか?C++では、このような構成は合法と思われる。 Flops 2012.04.23 08:21 #76 Yedelkin: 参考にしているんですね。MQL5リファレンスガイド / 言語の基礎 / データ型 / リファレンス。修飾語 & とキーワード this?正しい情報があればいいのですが・・・。記事中https://www.mql5.com/ru/docs/basis/function/ParameterPassは、オブジェクトの操作に関する情報を追加することもできます。 Документация по MQL5: Основы языка / Функции / Передача параметров www.mql5.com Основы языка / Функции / Передача параметров - Документация по MQL5 Igor Volodin 2012.04.23 10:25 #77 Andrei01: インターフェースはクラスの外部にあるのでは?オブジェクトにどのような違いがあるのでしょうか?この解釈では、インターフェースはデータ型であり、その記述はオブジェクトの特性を十分に明確に定義しているからである。そして、実は、モノの外見的な振る舞いを定義しているのです。 引用した資料の中で、OOP反対派は、アルゴリズムを実装せずにすぐにクラス構造を 作ることは不可能であり、だからこそOOP環境ではリファクタリングを頻繁に実践し、クラスが永遠に再設計されることで開発の妨げに なると述べています。そして、これは本当にそうなんです。 新しいことを導入しても、それが何につながるか理解できていないと、授業をやり直したり、何度もやり直したりしなければなりません。 良いクラス・アーキテクチャを作ることは、初心者がつまずくところです。要するに、OOPプログラミングのポイントは、自分自身の「言語」を書くこと、つまり、将来にわたって簡単かつ高速に作成できる言語を書くことなのです。インターフェイスとは、そのタスクのために設計された言語の本質である。インターフェイスは、実のところ、クラスの「型の」構造として理解されてはならず、クラスの契約として、コードで実行されなければならない(MQLでは、それは存在せず、インターフェイスの役割は、仮想メソッドによって弱々しく実行することができる)。 例えば、新しいEAを作成するための「言語」を作成し、数行でオブジェクトからEAの一般的なスキームを組み立てることができるようにすることができます。シグナルやコンディションは既製品を使うこともできますし、シグナルのクラスを独自に開発し、類推して独自のライブラリを作成することも可能です。この可能性は、MQL5 Wizardによって 提供されます。多くの場合、アプリケーションのスキームはすでに開発されており、「OOPプログラミング」は本質的に、既存のクラスを使い、独自の機能を書く自由度を制限することに集約される--これは便利である。そのため、フレームワークが普及しているのです。実際、自分で何かを書くということは、フレームワークのクラスの継承クラスを作成し、その中に、アプリケーション全体のロジックにすでに組み込まれている特定のバックエンドメソッド(例えば、OnInitやOnTickなど)の実装を書くということなのです。 Vasiliy Sokolov 2012.04.23 11:53 #78 Vigor:...有能なクラス・アーキテクチャの作成は、初心者がつまずくところです。要するに、OOPプログラミングのポイントは、自分自身の「言語」を書くこと、つまり、将来にわたって簡単かつ高速に作成できる言語を書くことなのです。インターフェイスとは、そのタスクのために設計された言語の本質である。インターフェイスは、クラスの "型 "の構成要素としてではなく、コードで実行されなければならないクラスの契約として理解されるべきです(MQLでは、それは存在せず、インターフェイスの役割は仮想メソッドによって検証することが可能です)。 ... OOPのポイントは、むしろ自分でアーキテクチャを書くことにあるのです。明確で直感的なアーキテクチャがあれば、すべてがうまくいき、プロジェクトの 複雑さやボリュームが制約要因にならなくなるのです。しかし、この明確なアーキテクチャを実現するためには、最初は漠然としていた理想に近づくために、一つ一つクラスを書き換えていかなければなりません。 Vladimir Gomonov 2012.04.23 13:28 #79 C-4: むしろ、OOPのポイントは、自分でアーキテクチャを書くことです。明確で簡潔、かつ直感的に理解できるアーキテクチャがあれば、すべてがうまくいき、プロジェクトの複雑さやスコープが制約要因にならなくなるのです。しかし、この明確なアーキテクチャを実現するためには、漠然とした理想に近づくために、一つ一つクラスを書き換えていかなければなりません。+1 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
関数のパラメータで参照を返すにはどうしたらよいですか?
このようなコードでは問題が発生します。
CMy* obj; // global bool func(CMy* obj) { ... obj = new CMy(); ... }
obj を操作しようとすると、無効なポインタ・ アクセスが発生します。
&を追加してみた。
効くんです。関数のパラメータでの参照戻り値はドキュメントにはありませんでした。
類推するに、C++でこのようなトピックを見つけました。http://stackoverflow.com/questions/5286453/returning-a-pointer-as-a-function-parameter。
しかし、ここでは**は通用しない。の代わりに*&ですか?
5.00.630 x64
ドキュメントの関数のパラメータにリファレンスリターンが見つかりませんでした。
関数のパラメータで参照を返すにはどうしたらよいですか?
このようなコードでは問題が発生します。
obj を操作しようとすると、無効なポインタ・アクセスが発生します。
&を追加してみた。
効くんです。関数のパラメータでの参照戻り値はドキュメントにはありませんでした。
類推するに、C++でこんなトピックがありました。http://stackoverflow.com/questions/5286453/returning-a-pointer-as-a-function-parameter。
しかし、あなたの**はうまくいきません。の代わりに*&ですか?
5.00.630 x64
IMHO(昔の話です)。
引数でポインタを渡すことはできず、参照を作成します。クラスの新しいインスタンスを参照にバインドすることはできません。そうすると、次のような道が残ります。
私はボトムアップでプログラミングすることの利便性を理解したため、OOPの支持者です。オブジェクト相互作用のインターフェースからクラスの実装まで。
IMHO(昔の話です)。
引数でポインターを渡すことはできず、参照を作成することができます。そのクラスの新しいインスタンスは、参照に添付することができません。そうすると、こんな選択肢が残されています。
質問の定義を間違えていました。
ポインタの参照渡しを 行う。というのは、*&の バリアントを使ってもいいのかどうか、また、さらなるバージョンアップでカバーされることはないのでしょうか?C++では、このような構成は合法と思われる。
参考にしているんですね。MQL5リファレンスガイド / 言語の基礎 / データ型 / リファレンス。修飾語 & とキーワード this?
正しい情報があればいいのですが・・・。
記事中
https://www.mql5.com/ru/docs/basis/function/ParameterPass
は、オブジェクトの操作に関する情報を追加することもできます。
インターフェースはクラスの外部にあるのでは?
オブジェクトにどのような違いがあるのでしょうか?この解釈では、インターフェースはデータ型であり、その記述はオブジェクトの特性を十分に明確に定義しているからである。そして、実は、モノの外見的な振る舞いを定義しているのです。
引用した資料の中で、OOP反対派は、アルゴリズムを実装せずにすぐにクラス構造を 作ることは不可能であり、だからこそOOP環境ではリファクタリングを頻繁に実践し、クラスが永遠に再設計されることで開発の妨げに なると述べています。そして、これは本当にそうなんです。 新しいことを導入しても、それが何につながるか理解できていないと、授業をやり直したり、何度もやり直したりしなければなりません。
良いクラス・アーキテクチャを作ることは、初心者がつまずくところです。要するに、OOPプログラミングのポイントは、自分自身の「言語」を書くこと、つまり、将来にわたって簡単かつ高速に作成できる言語を書くことなのです。インターフェイスとは、そのタスクのために設計された言語の本質である。インターフェイスは、実のところ、クラスの「型の」構造として理解されてはならず、クラスの契約として、コードで実行されなければならない(MQLでは、それは存在せず、インターフェイスの役割は、仮想メソッドによって弱々しく実行することができる)。
例えば、新しいEAを作成するための「言語」を作成し、数行でオブジェクトからEAの一般的なスキームを組み立てることができるようにすることができます。シグナルやコンディションは既製品を使うこともできますし、シグナルのクラスを独自に開発し、類推して独自のライブラリを作成することも可能です。この可能性は、MQL5 Wizardによって 提供されます。
多くの場合、アプリケーションのスキームはすでに開発されており、「OOPプログラミング」は本質的に、既存のクラスを使い、独自の機能を書く自由度を制限することに集約される--これは便利である。そのため、フレームワークが普及しているのです。実際、自分で何かを書くということは、フレームワークのクラスの継承クラスを作成し、その中に、アプリケーション全体のロジックにすでに組み込まれている特定のバックエンドメソッド(例えば、OnInitやOnTickなど)の実装を書くということなのです。
...
有能なクラス・アーキテクチャの作成は、初心者がつまずくところです。要するに、OOPプログラミングのポイントは、自分自身の「言語」を書くこと、つまり、将来にわたって簡単かつ高速に作成できる言語を書くことなのです。インターフェイスとは、そのタスクのために設計された言語の本質である。インターフェイスは、クラスの "型 "の構成要素としてではなく、コードで実行されなければならないクラスの契約として理解されるべきです(MQLでは、それは存在せず、インターフェイスの役割は仮想メソッドによって検証することが可能です)。
...
むしろ、OOPのポイントは、自分でアーキテクチャを書くことです。明確で簡潔、かつ直感的に理解できるアーキテクチャがあれば、すべてがうまくいき、プロジェクトの複雑さやスコープが制約要因にならなくなるのです。しかし、この明確なアーキテクチャを実現するためには、漠然とした理想に近づくために、一つ一つクラスを書き換えていかなければなりません。