基礎から学ぶシステムトレード
シストレブログ人気ランキング  

シストレ徹底攻略シストレマスターへの道ワールド・トレーディング・エッジ基礎から学ぶシステムトレードシストレニュースシストレツールシストレナビTOPへ

 

2011年05月18日(水)

[MQL5]オーバーロードに関して [MQL5]



MQL5で追加された機能の一つとして関数オーバーロードの話をしてきましたが、「オーバーロード」っていう言葉、普通に使ってよかったのかな、とふと気になったので、ちょっと調べてみました。

「関数オーバーロード」でググると、ウィキペディアで「多重定義」というページにヒットしました。

同じ関数名で複数の異なる定義をすることができるので、意味としては確かに「多重定義」です。オーバーロード(overload)と言われても、すぐにはピンときませんね。実際、overload を辞書で調べると、「積みすぎ」とか「使いすぎ」という意味が出てくるので、多重定義と意味づけるには無理があります。

一方、プログラミング用語として「オーバーロード」を調べると、「関数のオーバーロード」とか「演算子のオーバーロード」というものが見つかります。

演算子のオーバーロードというのは「+-*/=」などの演算子を多重定義することです。MQL5では、1+2のような数値の足し算だけでなく、"abc"+"def"のように文字列の連結に「+」という演算子を使えるので、これは演算子のオーバーロードということができます。

但し、MQL5では、ユーザーが独自に演算子の多重定義をプログラム上で行うことはできません。あくまで内部での話です。ちなみにC++では、ユーザーが関数のオーバーロードに加えて、演算子のオーバーロードもできるようになっています。

なお、ウィキペディアのページでも記述されていますが、「オーバーロードの濫用」は好ましくありません。関数を定義する際、その処理内容は、入力となるパラメータと関連があります。パラメータの型が変わると、処理内容も変わってしまうのであれば、同じ関数名では混乱してしまいます。そういう場合には、いっそのこと関数名を変えた方がわかりやすいというわけです。

なので、パラメータの型が変わっても、処理内容が変わらないような特別なケースにのみ関数のオーバーロードは使うべきでしょう。

MQL5の組込み関数でも、多重定義されているものはそんなに多くはありません。具体例についてはサンプルプログラムの中で出てきたときに紹介します。


>>“基礎から学ぶシステムトレード”全記事バックナンバーはこちらから




Posted at 11時26分


ページのトップへ ページのトップへ

Sponsor AD

2011/5

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

プロフィール

豊嶋久道

2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めたトレーディングシステムの研究を行っている。システムトレードを基礎から正しく理解するための情報を発信する予定。

PHOTO

ランダムウォークとランダムトレード(2)

ランダムウォークとランダムトレード(2)

カテゴリーリスト

最近の記事

検索


当サイトコメントについて

当コメントは情報提供のみを目的として作成されたものであり、投資に関してはご自身でご判断くださいますようお願い致します。また、当資料は著作物であり著作権法により保護されております。無断で全文または一部を転載することはできません。

RSS1.0

[Login]


powered by a-blog
Copyright (C) 2008 PhiConcept,Inc. All rights reserved.