class A1 {}; //Indicatorsclass A2 {}; //Indicatorclass BB {
public:
void f( A1 * ) {}
};
class B : public BB {
public:
void f( A1 * ) {}
};
voidOnStart()
{
A2* a;
B b;
b.f( a ); //error: 'f' - no one of the overloads can be applied to the function call
}
// Добавление элемента в конец произвольного массиваtemplate <typename T>
void AddArrayElement( T &Array[], T Value, constint Reserve = 0 )
{
constint Size = ArraySize(Array);
ArrayResize(Array, Size + 1, Reserve);
Array[Size] = Value;
}
class A {};
class B : public A {};
voidOnStart()
{
A* Array[];
A* a = new B; // no problem
AddArrayElement(Array, (A*)(new B)); // no problem
AddArrayElement(Array, new B); // template parameter ambiguous, could be 'A*' or 'B*'
}
言語バグ
ユーザーコードのバグがバグでない:InitIndicators(CIndicator*)メソッドの欠落
ユーザーコードのエラーはバグではありません:InitIndicators(CIndicator *)メソッドがありません。
sの文字が抜けているが、コンパイラのメッセージが 誤っているため、SDが修正にあたった。
SDが修理に取りかかりました。
エラーが含まれていないものを修正することはできません。<Indicator.mqh> ファイルを見てください - CIndicator クラスに s の文字がありません。
そのことをSRに書いてください。彼らは(私ではなく)「誤りがあるので修正する」と主張しています。
そのことをSRに書いてください。彼らは(私ではなく)バグがあり、修正されると主張している。
元々バグがあるとのことですが、どのようなバグなのか説明していただけますか?何がいけないのでしょうか?以下は、その簡略化したコードです。
そのことをSRに書いてください。彼らは(私ではなく)「誤りがあるので修正する」と主張しています。
コンパイラは仮想メソッドのオーバーライドをオーバーロードとして扱うので、それを修正する。
バグでしょうか?
ハンドルネームからファイル名を知るには?