Dalam C++, fungsi boleh mengembalikan struktur atau kelas melalui rujukan atau salinan: Kembalikan rujukan: Menggunakan simbol &, pemanggil boleh mengubah suai objek yang dikembalikan, dan perubahan ditunjukkan dalam objek asal. Kembalikan salinan: Dengan mengembalikan mengikut nilai, pengubahsuaian salinan pemanggil tidak akan menjejaskan objek asal.
Cara untuk mengembalikan struktur atau kelas dalam C++
Dalam C++, fungsi boleh mengembalikan struktur atau kelas, tetapi ini berbeza daripada mengembalikan jenis data ringkas. Untuk mengembalikan struktur atau kelas dengan betul, kita perlu memahami konsep berikut:
1. Rujukan
Rujukan ialah alias untuk pembolehubah. Seperti penunjuk, rujukan menghala ke alamat memori tertentu, tetapi tidak seperti penunjuk, rujukan tidak boleh diagihkan semula ke alamat lain.
2 Kembalikan rujukan kepada struktur atau kelas
Untuk mengembalikan rujukan kepada struktur atau kelas, kami menggunakan tatatanda &
. Berikut ialah contoh: &
符号。以下是示例:
struct Person { std::string name; int age; }; Person& getPerson() { // ... 代码 ... Person person = { "John Doe", 30 }; return person; }
在这个示例中,getPerson()
函数返回一个 Person
类型的引用。调用者可以修改返回的 Person
对象,而所做的更改也会反映在原始对象中。
3. 返回结构体或类的副本
如果我们不希望调用者修改原始对象,我们可以返回结构体或类的副本。为此,我们使用值返回:
Person getPersonCopy() { // ... 代码 ... Person person = { "John Doe", 30 }; return person; }
在这个示例中,getPersonCopy()
函数返回一个 Person
类型的副本。调用者可以修改副本,但所做的更改不会反映在原始对象中。
实战案例
假设我们有一个包含员工数据的 Employee
类:
class Employee { public: std::string name; int salary; };
我们可以编写一个函数来返回一个 Employee
Employee& getEmployeeReference(int id) { // ... 代码 ... Employee employee; // 查找并返回具有给定 ID 的员工的引用 return employee; } Employee getEmployeeCopy(int id) { // ... 代码 ... Employee employee; // 查找并返回具有给定 ID 的员工的副本 return employee; }
getPerson()
mengembalikan rujukan jenis Orang
. Pemanggil boleh mengubah suai objek Orang
yang dikembalikan dan perubahan akan ditunjukkan dalam objek asal. 🎜3 Kembalikan salinan struktur atau kelas 🎜🎜🎜Jika kita tidak mahu pemanggil mengubah suai objek asal, kita boleh mengembalikan salinan struktur atau kelas. Untuk melakukan ini, kami menggunakan pulangan nilai: 🎜rrreee🎜Dalam contoh ini, fungsi getPersonCopy()
mengembalikan salinan jenis Orang
. Pemanggil boleh mengubah suai salinan, tetapi perubahan tidak ditunjukkan dalam objek asal. 🎜🎜🎜Kes praktikal🎜🎜🎜Andaikan kita mempunyai kelas Atas ialah kandungan terperinci Apa yang perlu dilakukan apabila fungsi C++ mengembalikan struktur atau kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!