私はC++での参照の概念を理解しており、関数パラメーターで使用されたときにそれらが何をするかを理解していますが、それらが戻り型でどのように機能するかについてはまだ非常に混乱しています。
たとえば、パラメータで使用する場合、次のコードを使用します。
int main (void) {
int foo = 42;
doit(foo);
}
void doit (int& value) {
value = 24;
}
このコードに似ています:
int main (void) {
int foo = 42;
doit(&foo);
}
void doit (int* value) {
*value = 24;
}
(コンパイラーは、 doitの最初のコードサンプルで使用されるたびに値の前にアスタリスクを自動的に配置しますが、後者では、値を使用しようとするたびに自分自身にアスタリスクを配置する必要があります)
では、参照として使用する場合、この次のコード(戻り型で参照を使用)は何に変換されますか?intへのポインタを返しますか?それとも、intを返すだけですか?
int main (void) {
int* foo = /*insert useful place in memory*/;
foo = doit(foo);
}
int& doit (int* value) {
//insert useful code
}