voidOnStart()
{
A *a = new A;
if ( a == a ) Print( "1" ); //сравнение указателей как чиселif ( a >> a ) Print( "3" ); //вызывается operator<<( A *)
}
ポインタの比較は特殊な関数である
voidOnStart()
{
A *a = new A;
if ( isEqualPoiner( a, a ) ) Print( "1" ); //сравнение указателей как чиселif ( a == a ) Print( "2" ); //вызывается operator==( A *)if ( a >> a ) Print( "3" ); //вызывается operator<<( A *)
}
意味のないポインタ演算はどれか?
これは、現在の方法(オブジェクトについてはオーバーロード)であり、すべてがうまくいっているようです。しかし、意味のあるもの(==と!=)とそれ以外との間には矛盾がある
かわりに
ポインタの比較は特殊な関数である
ポインタの比較のための特殊な関数は,次のように設計することができる.
軽率な質問をさせていただきます。体験談はありますか?
あなたは、テンプレートやマクロを積極的かつ継続的に使っている数少ない人です。そして、おそらく大量のコードが蓄積されていることでしょう。
他の人はどうか知りませんが、もしあなたのコードや開発したものがあれば、公開しても構わないので見てみたいです。
どうだろう...パターンの実装、インジケータやチャートで作業するためのラッパー...
テンプレートの使い方を教えてください。- エントリーを短くすること。例えば、MQLにはカンマ演算は ありません。というレコードがあるとします。
それから、パターンを持つことtemplate<typename T 1, typename T 2> T2 opComma( T1 expression, T2 assignment_expression ) { return ( assignment_expression ); }
4行ではなく、1行になります
マクロの使い方を教えてください。- もう一度言いますが、記録を短くするためです。例えば、MQLにはクラステンプレートがありません。問題ありません - マクロを使用しています
と宣言すれば事足りる。
datetime dt; MDT( dt_struct, dt )
例えば、ビット単位のコピーは、一度に複数の型を扱うことができるため、テンプレートで実装します。