Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Hubungan antara kaedah lulus parameter fungsi C++ dan fungsi ahli objek

Hubungan antara kaedah lulus parameter fungsi C++ dan fungsi ahli objek

PHPz
PHPzasal
2024-04-12 12:15:02953semak imbas

Parameter fungsi C++ boleh diluluskan mengikut nilai atau rujukan. Parameter lulus fungsi ahli objek juga menganggap penunjuk ini Secara lalai, penunjuk ini diluluskan sebagai parameter tersirat. Parameter bukan rujukan diluluskan mengikut nilai secara lalai, dan parameter rujukan secara tersirat menunjukkan perkara ini.

C++ 函数参数传递方式与对象成员函数的关系

Hubungan antara kaedah lulus parameter fungsi C++ dan fungsi ahli objek

Dalam C++, parameter fungsi diluluskan dalam dua cara: mengikut nilai dan rujukan. Untuk fungsi ahli objek, terdapat pertimbangan tambahan untuk cara parameter diluluskan.

Pass by value

Apabila parameter diluluskan dengan nilai, fungsi mendapat salinan parameter. Sebarang pengubahsuaian yang dibuat pada salinan tidak akan menjejaskan data asal.

Lulus melalui rujukan

Apabila parameter diluluskan melalui rujukan, fungsi tersebut mengakses data asal secara langsung. Sebarang pengubahsuaian yang dibuat pada parameter dalam fungsi akan ditunjukkan dalam perubahan kepada data asal selepas fungsi dipanggil.

Parameter passing fungsi ahli objek

Apabila fungsi ahli objek tidak menerima sebarang parameter, secara lalai, penuding ini akan dihantar ke fungsi ahli sebagai parameter tersirat. Penunjuk ini menghala ke objek yang fungsi ahli dipanggil, membenarkan akses dan pengubahsuaian data objek. this 指针会作为隐式参数传递给成员函数。this 指针指向调用成员函数的对象,允许访问和修改对象数据。

如果对象成员函数接受参数,则参数传递遵循与普通函数相同的方式。但是,需要注意以下几点:

  • 非静态成员函数中的非引用参数默认以值传递。
  • 非静态成员函数中的引用参数隐式地指向this,就像它们是this->field一样。

实战案例

我们通过一个示例来说明对象成员函数的参数传递方式。假设我们有一个Person类,它有一个name

Jika fungsi ahli objek menerima parameter, hantaran parameter mengikut cara yang sama seperti fungsi biasa. Walau bagaimanapun, terdapat beberapa perkara yang perlu diambil perhatian:
  • Parameter bukan rujukan dalam fungsi ahli bukan statik diluluskan secara nilai secara lalai.
  • Parameter rujukan dalam fungsi ahli bukan statik secara tersirat menunjuk kepada ini seolah-olah ia adalah medan->ini.
  • Kes praktikal
Kami menggunakan contoh untuk menggambarkan kaedah lulus parameter fungsi ahli objek. Katakan kita mempunyai kelas Orang, yang mempunyai nama pembolehubah ahli: 🎜
class Person {
public:
    string name;

    void printName() {
        cout << "Name: " << name << endl;
    }
    
    void changeName(string newName) {
        name = newName;
    }
};
🎜🎜🎜 Nilai lulus: 🎜🎜🎜
int main() {
    Person person;
    person.name = "John Doe";

    string newName = "Jane Doe";
    person.changeName(newName);

    person.printName(); // 输出:Name: Jane Doe

    // newName 变量不会受到函数调用影响,仍然是 "Jane Doe"。
}
🎜🎜🎜Melalui rujukan: 🎜🎜 🎜rreeee

Atas ialah kandungan terperinci Hubungan antara kaedah lulus parameter fungsi C++ dan fungsi ahli objek. 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