Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah fungsi C++ mengembalikan rujukan atau penunjuk sebagai nilai pulangan?

Bagaimanakah fungsi C++ mengembalikan rujukan atau penunjuk sebagai nilai pulangan?

PHPz
PHPzasal
2024-04-13 17:45:01747semak imbas

Fungsi C++ boleh mengembalikan rujukan atau penuding sebagai nilai pulangan dengan cara berikut: Mengembalikan rujukan: Menggunakan '&' sebagai jenis pulangan membolehkan fungsi mengubah suai nilai objek pemanggil. Penunjuk pulangan: Menggunakan '*' sebagai jenis pulangan membenarkan fungsi mengubah suai nilai yang ditunjuk oleh objek pemanggil. Apabila menggunakan rujukan atau penunjuk, pastikan objek kekal sah selepas fungsi kembali, dan elakkan penggunaan yang tidak perlu yang mengurangkan kejelasan kod.

C++ 函数如何返回引用或指针作为返回值?

Cara C++ berfungsi mengembalikan rujukan atau penunjuk sebagai nilai pulangan

Dalam C++, fungsi biasanya menghantar parameter melalui objek atau pembolehubah yang disediakan oleh pemanggil. Walau bagaimanapun, terdapat situasi di mana anda mungkin mahu fungsi mengembalikan rujukan atau penuding kepada objek pemanggil. Ini boleh dicapai dalam beberapa cara.

Mengembalikan Rujukan

Untuk mengembalikan rujukan, gunakan jenis pulangan rujukan &. Contohnya: & 引用的返回类型。例如:

int& max(int& a, int& b) {
  return (a > b) ? a : b;
}

此函数返回对更大数字的引用,从而允许调用者修改原始值。

实战案例

假设我们有一个学生类,其中包含一个 name 属性。我们可以编写一个返回学生姓名引用的函数,如下所示:

class Student {
public:
  string& getName() {
    return name;
  }

private:
  string name;
};

int main() {
  Student student;
  student.getName() = "John Doe";
  cout << student.getName() << endl;  // 输出:"John Doe"
}

返回指针

要返回指针,请使用 * 解引用运算符作为返回类型。例如:

int* max(int* a, int* b) {
  return (a > b) ? a : b;
}

此函数返回一个指向更大数字的指针,从而允许调用者修改原始值。

实战案例

假设我们有一个形状类,其中包含一个 area

class Shape {
public:
  double* getArea() {
    return &area;
  }

private:
  double area;
};

int main() {
  Shape shape;
  *shape.getArea() = 100.0;
  cout << *shape.getArea() << endl;  // 输出:"100"
}

Fungsi ini mengembalikan rujukan kepada nombor yang lebih besar, membenarkan pemanggil mengubah suai nilai asal.

Kes praktikal
  • Andaikan kita mempunyai kelas pelajar yang mengandungi atribut name. Kita boleh menulis fungsi yang mengembalikan rujukan kepada nama pelajar seperti ini:
  • rrreee
  • Penunjuk pulangan
  • Untuk mengembalikan penuding, gunakan operator penyahrujukan * sebagai jenis pemulangan. Contohnya:
  • rrreee
Fungsi ini mengembalikan penunjuk kepada nombor yang lebih besar, membolehkan pemanggil mengubah suai nilai asal. 🎜🎜Kes praktikal🎜🎜 Katakan kita mempunyai kelas bentuk yang mengandungi atribut kawasan. Kita boleh menulis fungsi yang mengembalikan penunjuk ke kawasan bentuk seperti berikut: 🎜rrreee🎜Nota🎜🎜🎜Apabila mengembalikan rujukan atau penunjuk, anda perlu memastikan objek itu masih sah selepas fungsi itu kembali. 🎜🎜Mengembalikan rujukan atau penuding membolehkan fungsi membuat pengubahsuaian terus pada objek pemanggil, yang mungkin membawa kepada tingkah laku yang tidak dijangka. 🎜🎜Elakkan memulangkan rujukan atau petunjuk apabila tidak diperlukan kerana ia boleh mengurangkan kejelasan kod anda. 🎜🎜

Atas ialah kandungan terperinci Bagaimanakah fungsi C++ mengembalikan rujukan atau penunjuk sebagai nilai pulangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn