Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Pembebanan Operator Berfungsi dengan Operator Akses Ahli (->, .)?

Bagaimanakah Pembebanan Operator Berfungsi dengan Operator Akses Ahli (->, .)?

Patricia Arquette
Lepaskan: 2024-12-03 07:28:10
asal
742 orang telah melayarinya

How Does Operator Overloading Work with Member Access Operators (->, .)?
, .)? " />

Memahami Lebihan Operator Akses Ahli

Walaupun lebih muatan operator secara amnya mudah, memahami operator akses ahli ->, ., -> dan lain-lain boleh mengelirukan Artikel ini menyelidiki tingkah laku bernuansa mereka dan memberikan jawapan kepada perkara biasa soalan.

Lulus Hujah dan Nilai yang Dikembalikan

Fungsi operator-> tidak mengambil hujah dan mengembalikan objek yang dipanggil untuknya dikendalikan oleh operator lain-> Fungsi operator-* mengambil dan mengembalikan sebarang hujah yang anda nyatakan.

Mengenal pasti Ahli Dirujuk

Fungsi operator-> tidak perlu mengetahui ahli khusus yang dirujuk kerana ia hanya mengembalikan objek yang mengandungi carian ahli seterusnya menggunakan nilai pulangan.

const Pertimbangan

Operator terlebih muatan-> memerlukan versi bukan const operator-> tidak mempunyai pertimbangan const tertentu. Operator . dan . tidak boleh terlebih muatan.

Kod Contoh

Pertimbangkan contoh berikut menunjukkan operator->:

struct client { int a; };

struct proxy {
    client *target;
    client *operator->() const { return target; }
};

void f() {
    client x{3};
    proxy y{&x};
    std::cout << x.a << y->a;    // prints "33"
}
Salin selepas log masuk

Kod ini mempamerkan tingkah laku "latih tubi" operator->, di mana berbilang operator-> panggilan dirantai bersama untuk melakukan carian ahli.

Atas ialah kandungan terperinci Bagaimanakah Pembebanan Operator Berfungsi dengan Operator Akses Ahli (->, .)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan