次の関数があるとします。
void myFunc(P& first, P& last) {
std::cout << first.child.grandchild[2] << endl;
// ...
}
さて、first.child.grandchild[2]
私の目的には長すぎるとしましょう。たとえば、 内の方程式に頻繁に現れるとしますmyFunc(P&,P&)
。そのため、関数内にある種のシンボリック参照を作成して、方程式が乱雑にならないようにしたいと思います。どうすればこれを行うことができますか?
特に、以下のコードを検討してください。line_1a からの出力が常に line_1bからの出力と同じになるだけでなく、 line_2a からの出力が常に line_2b からの出力と同じになるように、挿入できるステートメントを知る必要があります。つまり、 の値のコピーではなくfirst.child.grandchild
、オブジェクトへの参照またはシンボリック リンクが必要first.child.grandchild
です。
void myFunc(P& first, P& last) {
// INSERT STATEMENT HERE TO DEFINE "g"
std::cout << first.child.grandchild[2] << endl; // line_1a
std::cout << g[2] << endl; // line_1b
g[4] = X; // where X is an in-scope object of matching type
std::cout << first.child.grandchild[4] << endl; // line_2a
std::cout << g[4] << endl; // line_2b
//...
}