Rumah pembangunan bahagian belakang C++ Interaksi ungkapan C++ Lambda dengan lebihan fungsi dan penulisan semula

Interaksi ungkapan C++ Lambda dengan lebihan fungsi dan penulisan semula

Apr 20, 2024 am 10:30 AM
c++ lambda Skop

Ekspresi Lambda berinteraksi dengan lebihan fungsi dan menulis semula dalam C++, memberikan kod yang fleksibel dan boleh digunakan semula. Ungkapan Lambda boleh bertindak sebagai fungsi terlampau beban, membenarkan penggunaan ungkapan Lambda dengan nama yang sama tetapi parameter berbeza ia juga boleh digunakan untuk mengatasi fungsi maya dalam kelas asas. Dengan menggunakan ungkapan lambda dalam lebihan fungsi, anda boleh menyediakan gelagat fungsi khusus untuk jenis data atau pengiraan bentuk yang berbeza.

C++Lambda 表达式与函数重载和重写的交互

Interaksi ungkapan Lambda dengan fungsi C++ yang berlebihan dan menulis semula

Dalam C++, ungkapan Lambda ialah fungsi tanpa nama yang membolehkan fungsi ditakrifkan dan digunakan tanpa mengisytiharkan fungsi yang dinamakan. Bersama-sama dengan kelebihan beban dan penulisan semula fungsi, ia memberikan keupayaan untuk melaksanakan kod yang lebih fleksibel dan boleh digunakan semula.

Function Overloading

Function overloading membolehkan fungsi dengan nama yang sama menerima jenis dan nombor parameter yang berbeza. Fungsi terlampau beban dibezakan berdasarkan senarai parameter dan membenarkan gelagat fungsi khusus untuk jenis data yang berbeza dibuat dalam kod.

Contoh:

double add(double a, double b) {
  return a + b;
}

int add(int a, int b) {
  return a + b;
}
Salin selepas log masuk

Dalam contoh ini, kami melebihkan fungsi bernama add, satu untuk penambahan titik terapung dan satu lagi untuk penambahan integer. add 的函数,一个用于浮点数加法,另一个用于整数加法。

Lambda 表达式

Lambda 表达式使用 [] 括号表示,其中包含捕获列表(可选),后面是参数列表和函数体。

示例:

auto addLambda = [](double a, double b) { return a + b; };
Salin selepas log masuk

此 Lambda 表达式表示了一个接受两个双精度浮点参数并返回其总和的函数。

函数重写

函数重写允许派生类覆盖基类中定义的函数。重写用于修改派生类中特定函数的行为,同时保留基类函数的名称和签名。

示例:

class Base {
public:
  virtual int add(int a, int b) {
    return a + b;
  }
};

class Derived : public Base {
public:
  int add(int a, int b) override {
    return a + b + 1;
  }
};
Salin selepas log masuk

在示例中,Derived 类重写了 Base 类中的 add

Ekspresi Lambda

Ekspresi Lambda dinyatakan menggunakan kurungan [], yang mengandungi senarai tangkapan (pilihan), diikuti dengan senarai parameter dan badan fungsi.
  • Contoh:
  • auto circleCircumference = [](double radius) { return 2 * M_PI * radius; };
    auto rectangleCircumference = [](double length, double width) { return 2 * (length + width); };
    
    double getCircumference(Shape shape) {
      if (shape.type == Circle) {
        return circleCircumference(shape.radius);
      } else if (shape.type == Rectangle) {
        return rectangleCircumference(shape.length, shape.width);
      } else {
        throw invalid_argument("Unknown shape type");
      }
    }
    Salin selepas log masuk
  • Ungkapan Lambda ini mewakili fungsi yang menerima dua hujah titik terapung berketepatan dua dan mengembalikan jumlahnya.
  • Fungsi mengatasi

    Fungsi mengatasi membenarkan kelas terbitan untuk mengatasi fungsi yang ditakrifkan dalam kelas asas. Penggantian digunakan untuk mengubah suai gelagat fungsi tertentu dalam kelas terbitan sambil mengekalkan nama dan tandatangan fungsi kelas asas.

    Contoh:

    rrreee

    Dalam contoh, kelas Derived mengatasi fungsi add dalam kelas Base, menyediakannya dengan Modified tingkah laku, menambah 1 kepada jumlah. 🎜🎜🎜Ekspresi Lambda dengan terlebih muatan dan menulis semula🎜🎜🎜🎜🎜Ekspresi Lambda dengan lebihan muatan: 🎜Ekspresi Lambda boleh bertindak sebagai fungsi terlampau beban, membenarkan penggunaan ungkapan Lambda dengan nama yang sama tetapi skop yang berbeza dalam skop yang sama. 🎜🎜🎜Ekspresi lambda dan mengatasi: 🎜Ekspresi Lambda boleh digunakan untuk mengatasi fungsi maya dalam kelas asas. Kelas terbitan boleh memberikan gelagat fungsi yang berbeza dengan memberikan ungkapan lambda kepada penuding fungsi kelas asas. 🎜🎜🎜🎜Kes Praktikal🎜🎜🎜Pertimbangkan program yang perlu mengira perimeter pelbagai bentuk. Ungkapan Lambda boleh ditakrifkan untuk mengira perimeter bentuk yang berbeza dan digunakan dalam lebihan fungsi: 🎜rrreee🎜 Dalam contoh ini, ungkapan Lambda membenarkan takrifan fleksibel pengiraan perimeter untuk bentuk yang berbeza dan penyepaduan ke dalam lebihan fungsi, dengan itu menyediakan kod berskala dan boleh digunakan semula. 🎜

    Atas ialah kandungan terperinci Interaksi ungkapan C++ Lambda dengan lebihan fungsi dan penulisan semula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah peranan char dalam c strings Apakah peranan char dalam c strings Apr 03, 2025 pm 03:15 PM

Dalam C, jenis char digunakan dalam rentetan: 1. Simpan satu watak; 2. Gunakan array untuk mewakili rentetan dan berakhir dengan terminator null; 3. Beroperasi melalui fungsi operasi rentetan; 4. Baca atau output rentetan dari papan kekunci.

Cara Mengira C-SubScript 3 Subscript 5 C-SubScript 3 Subscript 5 Algoritma Tutorial Cara Mengira C-SubScript 3 Subscript 5 C-SubScript 3 Subscript 5 Algoritma Tutorial Apr 03, 2025 pm 10:33 PM

Pengiraan C35 pada dasarnya adalah matematik gabungan, yang mewakili bilangan kombinasi yang dipilih dari 3 dari 5 elemen. Formula pengiraan ialah C53 = 5! / (3! * 2!), Yang boleh dikira secara langsung oleh gelung untuk meningkatkan kecekapan dan mengelakkan limpahan. Di samping itu, memahami sifat kombinasi dan menguasai kaedah pengiraan yang cekap adalah penting untuk menyelesaikan banyak masalah dalam bidang statistik kebarangkalian, kriptografi, reka bentuk algoritma, dll.

Definisi nama fungsi dalam bahasa c Definisi nama fungsi dalam bahasa c Apr 03, 2025 pm 10:03 PM

Definisi nama fungsi bahasa C termasuk: jenis nilai pulangan, nama fungsi, senarai parameter dan badan fungsi. Nama fungsi harus jelas, ringkas dan bersatu dalam gaya untuk mengelakkan konflik dengan kata kunci. Nama fungsi mempunyai skop dan boleh digunakan selepas pengisytiharan. Penunjuk fungsi membolehkan fungsi diluluskan atau ditugaskan sebagai hujah. Kesalahan umum termasuk konflik penamaan, ketidakcocokan jenis parameter, dan fungsi yang tidak diisytiharkan. Pengoptimuman prestasi memberi tumpuan kepada reka bentuk dan pelaksanaan fungsi, sementara kod yang jelas dan mudah dibaca adalah penting.

Fungsi Penggunaan Fungsi Jarak Jarak Jarak Penggunaan C Tutorial Penggunaan Fungsi Penggunaan Fungsi Jarak Jarak Jarak Penggunaan C Tutorial Penggunaan Apr 03, 2025 pm 10:27 PM

STD :: Unik menghilangkan elemen pendua bersebelahan di dalam bekas dan menggerakkannya ke akhir, mengembalikan iterator yang menunjuk ke elemen pendua pertama. STD :: Jarak mengira jarak antara dua iterators, iaitu bilangan elemen yang mereka maksudkan. Kedua -dua fungsi ini berguna untuk mengoptimumkan kod dan meningkatkan kecekapan, tetapi terdapat juga beberapa perangkap yang perlu diberi perhatian, seperti: STD :: Unik hanya berkaitan dengan unsur -unsur pendua yang bersebelahan. STD :: Jarak kurang cekap apabila berurusan dengan Iterator Akses Bukan Rawak. Dengan menguasai ciri -ciri dan amalan terbaik ini, anda boleh menggunakan sepenuhnya kuasa kedua -dua fungsi ini.

Penggunaan Releaseemaphore dalam C Penggunaan Releaseemaphore dalam C Apr 04, 2025 am 07:54 AM

Fungsi Release_semaphore dalam C digunakan untuk melepaskan semaphore yang diperoleh supaya benang atau proses lain dapat mengakses sumber yang dikongsi. Ia meningkatkan kiraan semaphore dengan 1, yang membolehkan benang menyekat untuk meneruskan pelaksanaan.

Masalah dengan versi dev-c Masalah dengan versi dev-c Apr 03, 2025 pm 07:33 PM

DEV-C 4.9.9.2 Kesilapan dan Penyelesaian Penyusunan Apabila menyusun program dalam sistem Windows 11 menggunakan dev-C 4.9.9.2, panel rekod pengkompil boleh memaparkan mesej ralat berikut: gcc.exe: internalerror: dibatalkan (programcollect2) PleaseSubmitafullbugreport.seeforinstructions. Walaupun "kompilasi berjaya", program sebenar tidak dapat dijalankan dan mesej ralat "Arkib kod asal tidak dapat disusun" muncul. Ini biasanya kerana penghubung mengumpul

C Programmer &#S Panduan Tingkah Laku Tidak Ditentukan C Programmer &#S Panduan Tingkah Laku Tidak Ditentukan Apr 03, 2025 pm 07:57 PM

Meneroka tingkah laku yang tidak ditentukan dalam pengaturcaraan C: Panduan terperinci artikel ini memperkenalkan e-book mengenai tingkah laku yang tidak ditentukan dalam pengaturcaraan C, sejumlah 12 bab yang meliputi beberapa aspek pengaturcaraan C yang paling sukar dan kurang dikenali. Buku ini bukan buku teks pengenalan untuk bahasa C, tetapi bertujuan untuk pembaca yang biasa dengan pengaturcaraan bahasa C, dan meneroka pelbagai situasi yang mendalam dan akibat yang berpotensi dari tingkah laku yang tidak ditentukan. Pengarang Dmitrysviridkin, editor Andrey Karpov. Selepas enam bulan penyediaan yang teliti, e-book ini akhirnya bertemu dengan pembaca. Versi bercetak juga akan dilancarkan pada masa akan datang. Buku ini pada asalnya dirancang untuk memasukkan 11 bab, tetapi semasa proses penciptaan, kandungannya terus diperkaya dan akhirnya diperluas kepada 12 bab-ini sendiri adalah kes klasik yang luar bounds, dan boleh dikatakan setiap pengaturcara C

C dan Pengaturcaraan Sistem: Kawalan Rendah dan Interaksi Perkakasan C dan Pengaturcaraan Sistem: Kawalan Rendah dan Interaksi Perkakasan Apr 06, 2025 am 12:06 AM

C sesuai untuk pengaturcaraan sistem dan interaksi perkakasan kerana ia menyediakan keupayaan kawalan dekat dengan perkakasan dan ciri-ciri kuat pengaturcaraan berorientasikan objek. 1) C melalui ciri-ciri peringkat rendah seperti penunjuk, pengurusan memori dan operasi bit, operasi peringkat sistem yang cekap dapat dicapai. 2) Interaksi perkakasan dilaksanakan melalui pemacu peranti, dan C boleh menulis pemandu ini untuk mengendalikan komunikasi dengan peranti perkakasan.

See all articles