Latest web development tutorials

C ++ sebagai nilai kembali dari referensi

C ++ referensi C ++ referensi

Dengan menggunakan referensi bukan pointer, C ++ membuat program lebih mudah dibaca dan memelihara. C ++ fungsi dapat kembali referensi, dan mengembalikan pointer ke cara yang sama.

Bila fungsi mengembalikan referensi, ia mengembalikan pointer ke nilai kembali implisit. Dengan demikian, fungsi tersebut dapat ditempatkan di sisi kiri pernyataan penugasan. Sebagai contoh, perhatikan prosedur sederhana berikut:

#include <iostream>
#include <ctime>
 
using namespace std;
 
double vals[] = {10.1, 12.6, 33.1, 24.1, 50.0};
 
double& setValues( int i )
{
  return vals[i];   // 返回第 i 个元素的引用
}
 
// 要调用上面定义函数的主函数
int main ()
{
 
   cout << "改变前的值" << endl;
   for ( int i = 0; i < 5; i++ )
   {
       cout << "vals[" << i << "] = ";
       cout << vals[i] << endl;
   }
 
   setValues(1) = 20.23; // 改变第 2 个元素
   setValues(3) = 70.8;  // 改变第 4 个元素
 
   cout << "改变后的值" << endl;
   for ( int i = 0; i < 5; i++ )
   {
       cout << "vals[" << i << "] = ";
       cout << vals[i] << endl;
   }
   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

改变前的值
vals[0] = 10.1
vals[1] = 12.6
vals[2] = 33.1
vals[3] = 24.1
vals[4] = 50
改变后的值
vals[0] = 10.1
vals[1] = 20.23
vals[2] = 33.1
vals[3] = 70.8
vals[4] = 50

Ketika kembali referensi, memperhatikan obyek yang dirujuk tidak bisa keluar dari ruang lingkup. Ini mengembalikan referensi ke variabel lokal tidak sah, namun, Anda dapat kembali referensi ke variabel statis.

int& func() {
   int q;
   //! return q; // 在编译时发生错误
   static int x;
   return x;     // 安全,x 在函数作用域外依然是有效的
}

C ++ referensi C ++ referensi