C++ で式を短縮する方法はありますか? たとえば、私がこのようなものを持っていたら
ui.myplot->graph(0)
と省略したいmygraph
ので、このようにする代わりに
int a = ui.myplot->graph(0)->val;
私はこれを行うことができました
int a = mygraph->val;
ここではtypedefが機能しないことを知っています。助言がありますか ?
C++ で式を短縮する方法はありますか? たとえば、私がこのようなものを持っていたら
ui.myplot->graph(0)
と省略したいmygraph
ので、このようにする代わりに
int a = ui.myplot->graph(0)->val;
私はこれを行うことができました
int a = mygraph->val;
ここではtypedefが機能しないことを知っています。助言がありますか ?
参照を使用します。
const auto& mygraph = ui.myplot->graph(0);
または、値を変更する必要がある場合は可変参照:
auto& mygraph = ui.myplot->graph(0);
参照はエイリアスとして使用するように設計されています。これがパラメーターの受け渡しで最も頻繁に発生するという事実は、やや誤解を招く可能性があります。オブジェクトの深くネストされたフィールドなど、複雑な式の結果をエイリアスするためにローカルで使用することもできます。
ローカル変数を定義することを躊躇しないでください。それらは読みやすさを向上させるのに非常に便利であり、 -O0 でコンパイルされていない場合、コンパイラ (参照または実際の変数) によって最適化されます (この最後のケースでは、最適化の動作がわかりません)。
int a = ui.myplot->graph(0)->val;
になる
auto& myParticularGraph = ui.myplot->graph(0);
int a = myParticularGraph->val;
今myParticularGraph
は「エイリアス」のようなものですui.myplot->graph(0)