3

C++ で式を短縮する方法はありますか? たとえば、私がこのようなものを持っていたら

ui.myplot->graph(0)

と省略したいmygraphので、このようにする代わりに

int a =   ui.myplot->graph(0)->val;

私はこれを行うことができました

int a = mygraph->val;

ここではtypedefが機能しないことを知っています。助言がありますか ?

4

3 に答える 3

2

参照を使用します。

const auto& mygraph = ui.myplot->graph(0);

または、値を変更する必要がある場合は可変参照:

auto& mygraph = ui.myplot->graph(0);

参照はエイリアスとして使用するように設計されています。これがパラメーターの受け渡しで最も頻繁に発生するという事実は、やや誤解を招く可能性があります。オブジェクトの深くネストされたフィールドなど、複雑な式の結果をエイリアスするためにローカルで使用することもできます。

于 2013-08-09T06:52:56.023 に答える
0

ローカル変数を定義することを躊躇しないでください。それらは読みやすさを向上させるのに非常に便利であり、 -O0 でコンパイルされていない場合、コンパイラ (参照または実際の変数) によって最適化されます (この最後のケースでは、最適化の動作がわかりません)。

int a =   ui.myplot->graph(0)->val;

になる

auto& myParticularGraph = ui.myplot->graph(0);
int a =   myParticularGraph->val;

myParticularGraphは「エイリアス」のようなものですui.myplot->graph(0)

于 2013-08-09T07:35:35.400 に答える