質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

Q&A

解決済

2回答

1149閲覧

MQL4 string型について

y_masa.teratail

総合スコア13

MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

0グッド

0クリップ

投稿2022/02/27 13:19

MQL4を学んでおり、文字列型の下記の構文の意味がうまく理解できません。

MQL4

1string A(const string B)

調べてみたところ、Aという変数を定義し、それをBという定数に変換するという意味
であるようなのですが、これがどういう意味(役割)を持つのか、
ヒント、またはアドバイス頂けないでしょうか。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

xg63ex2bさんの回答のとうり関数ですが、
文字列(string B)を引数として渡し、結果として文字列を返す関数Aという意味です。

例えは、
string A ( const string B )
{
return( "<" + B + ">" );
}
という関数なら、 
A( "ABC" )の結果は、 "<ABC>"を返します。

投稿2022/02/28 11:24

yu-ima

総合スコア249

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_masa.teratail

2022/02/28 15:10

string A ( const string B )は、 文字列(string B)を引数として渡し、結果として文字列を返す関数A その通りだと思いました。 当方プログラムはまだまだ不慣れなもので、何か特別な処理をしているかと思ってしまいました。 ご連絡いただき、ありがとうございました。
guest

0

MQL4はあまり使ったことがないのですが、まだ回答がついていないようでしたので回答してみます。

調べてみたところ、Aという変数を定義し、それをBという定数に変換するという意味であるようなのですが、

調べた具体的な内容もご記載いただいた方が回答がつきやすいかもしれませんね。

const 指定子は、変数を定数として宣言し、実行時にこの変数を変更できないようにする。変数の初期化は、宣言時に一度だけ行うことができます。

c

1int OnCalculate (const int rates_total, // size of input time series 2 const int prev_calculated, // bars handled in previous call 3 const datetime& time[], // Time 4 const double& open[], // Open 5 const double& high[], // High 6 const double& low[], // Low 7 const double& close[], // Close 8 const long& tick_volume[], // Tick Volume 9 const long& volume[], // Real Volume 10 const int& spread[] // Spread 11 );

https://docs.mql4.com/basis/variables#const

.

OnCalculate()関数は、Calculateイベントによってインジケータ値を計算する必要がある場合にのみ、カスタムインジケータで呼び出されます。これは通常、インジケータが計算されるシンボルについて新しいティックが受信されたときに発生します。このインジケータは、このシンボルのどの価格チャートにも添付する必要はありません。
OnCalculate()関数の戻り値はint型である必要があります。

c

1int OnCalculate (const int rates_total, // size of input time series 2 const int prev_calculated, // bars handled in previous call 3 const datetime& time[], // Time 4 const double& open[], // Open 5 const double& high[], // High 6 const double& low[], // Low 7 const double& close[], // Close 8 const long& tick_volume[], // Tick Volume 9 const long& volume[], // Real Volume 10 const int& spread[] // Spread 11 );

https://docs.mql4.com/basis/function/events#oncalculate

質問欄のstring A(const string B)はちょっと分かりづらいですが、上の引用にあるような「関数」だと思いました。

その場合、

Aという変数を定義し、それをBという定数に変換するという意味

はちょっと違うと思いました。
Aというのは関数の名前で、その関数の引数の名前がBということだと思いました。

これがどういう意味(役割)を持つのか、

MQL4はC言語と似ているみたいですので、引数をconstにする意味などはC言語の記事なども見てみると良いかもしれません。

関数の引数を const として宣言すると、その関数が引数の値を変更しないことを約束するということを意味する。
https://www.jpcert.or.jp/sc-rules/c-dcl13-c.html

違っていたらすみません・・

投稿2022/02/28 00:33

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_masa.teratail

2022/02/28 15:05

回答頂き、ありがとうございます。 ご指摘ありがとうございます。具体的に調べた内容といたしましては、まずこの文がいまいちピンとこなかった ので、string const stringとウェブ検索をかけてみました。 すると、変換というキーワードが出てきたため、変換するための命令かな、と考えました。 しかし、なぜこのようなことを行ってるのかわからなかったため、質問させて頂きました。 string A(const string B)につきまして、関数を意味していたのですね。 Aという関数はBという引数によって戻り値を返す と理解すると納得できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問