MQL5要求定義04
MQL5要求定義04
ユーザー(日本ハム)
要求定義(多重継承)要求抽出01
1.ゴール要求
(1)スクリプトで1回きりの計算する。
(2)3つのクラスを定義。
(3)最後のクラスは前の2つのクラスを多重継承する。
(4)試作品のテストを行う。
ユーザー(日本ハム)
要求定義(多重継承)要求抽出02
プロトタイプ1
class CCircle
{
public:
double pi;
double r ;
public:
CCircle(void){pi=3.14;};
~CCircle(void){};
};
class CSquare
{
public:
double a;
public:
CSquare(void){a=5;};
~CSquare(void){};
};
class CArea : public CSquare , public CCircle
{
double b;
public:
CArea(void){b=10;};
~CArea(void){};
double f1(void ){return(r*r*pi);};
double f2(void ){return(a*b);};
};
void OnStart()
{
CArea s;
s.r = 3;
Print(s.f1());
Print(s.f2());
}
ベンダー(ソフトバンク)
要求定義(多重継承)要求確認01
次の項目の要求の妥当性を検討することになった。
1.要求の真理さ
2.要求の正当さ
3.要求の誠実さ
FuzzyTrade(MQL5プログラミング研究会)の案内はこちらから
よろしかったら「平尾容疑者の脱走とFX」の記事もご覧ください
ベンダー(ソフトバンク)
要求定義(多重継承)要求確認02
要求の妥当性を検討
MQL5では多重継承は使用出来ないことが判った。
テスト結果
(1)コンパイルはエラーを表示。
ベンダー(ソフトバンク)
要求定義(多重継承)要求確認03
プロトタイプ1を修正して試みた。
CAreaクラスはCCircleのサブクラスCSquareのサブクラスとした。
プロトタイプ2
class CCircle
{
public:
double pi;
double r ;
public:
CCircle(void){pi=3.14;};
~CCircle(void){};
};
class CSquare : public CCircle
{
public:
double a;
public:
CSquare(void){a=5;};
~CSquare(void){};
};
class CArea : public CSquare
{
double b;
public:
CArea(void){b=10;};
~CArea(void){};
double f1(void ){return(r*r*pi);};
double f2(void ){return(a*b);};
};
void OnStart()
{
CArea s;
s.r = 3;
Print(s.f1());
Print(s.f2());
}
ベンダー(ソフトバンク)
要求定義(多重継承)要求確認04
上記プログラムのテストは問題なかった。
テスト結果
(1)コンパイルは異状なく終了。
(2)MT5で正常に表示。
ユーザー(日本ハム)とベンダー(ソフトバンク)の打ち合わせ
要求定義(多重継承)要求確認05
ユーザーとベンダーは会議を開き、
要求のすり合わせを行った。
プロトタイプ1は廃棄されることになった。
代わって、プロトタイプ2が採用されることになった。