Contoh Fungsi C++

Contoh Fungsi C



Kelas C++ yang beroperasi seperti suatu fungsi disebut functor. Sintaks pemanggilan fungsi lama yang identik digunakan untuk memanggil fungsi. Kami membuat objek yang membebani 'operator()' untuk menghasilkan fungsi. Kita juga dapat mengatakan bahwa objek yang dapat diinterpretasikan sebagai fungsi atau penunjuk fungsi disebut fungsi. Saat memodelkan efek fungsional menggunakan nilai tipe data parametrik, “fungsi” sangat mudah digunakan. Pada artikel ini, konsep fungsi akan dipelajari secara detail beserta kode C++.

Contoh 1:

“iostream” adalah file header yang kami sertakan di sini karena kami harus memanfaatkan fungsi yang dideklarasikan dalam file header ini. File header “iostream” berisi deklarasi fungsi. Namespace 'std' juga ditambahkan di sini. Kemudian, kami membuat kelas yang disebut 'FunctorClass'. Di bawahnya, kita mengetik “public” yang merupakan konstruktor publik di sini dan menempatkan fungsi “operator()”. Kemudian, kita menempatkan kalimat yang ingin kita tampilkan di layar dalam pernyataan “cout”.

Setelah ini, kita memanggil fungsi “main()” dan kemudian membuat objek “FunctorClass” dengan nama, “my_functor”. Di sini, kita memanggil fungsi “my_functor()” sehingga menampilkan pernyataan yang kita tambahkan di bawah fungsi “operator()”.







Kode 1:



#termasuk
menggunakan ruang nama std ;
kelas Kelas Fungsi {
publik :
ruang kosong operator ( ) ( ) {
cout << 'Operasinya disebut di sini' ;
}
} ;
ke dalam utama ( ) {
Kelas Fungsi my_functor ;
fungsi_saya ( ) ;

kembali 0 ;
}

Keluaran:



Baris yang kita tambahkan dalam fungsi “operator()” dari “FunctorClass” ditampilkan di sini dengan memanfaatkan objek functor “my_functor”.





Contoh 2:

Kami menyertakan file header “iostream” di sini karena beberapa deklarasi fungsi terdapat dalam file header “iostream”. Namespace “std” juga dimasukkan. Selanjutnya, kita membuat kelas bernama “SquareClass”.



Di bawahnya, kita mengetik “public” yang merupakan konstruktor publik dan menempatkan fungsi “operator()” dari tipe data “int” di bawahnya. Kami meneruskan variabel “val” dari tipe data “int” ke fungsi “operator()” ini. Fungsi ini mengembalikan hasil perkalian seperti yang kita masukkan “val * val” ke dalam fungsi “return()” di bawah fungsi “operator()”.

Sekarang, fungsi “main()” dipanggil di sini. Kemudian, objek dibuat di sini dengan nama “s_functor” dari kelas “SquareFunctor”. Kemudian, kami menggunakan “cout” yang membantu dalam menampilkan informasi. Setelah ini, kita memanggil objek “my_functor()” di sini seperti sebuah fungsi dan mengembalikan hasil perkalian “5 * 5” saat kita menambahkan “5” sebagai parameter saat memanggilnya.

Kode 2:

#termasuk
menggunakan ruang nama std ;
kelas Kelas Persegi {
publik :
ke dalam operator ( ) ( ke dalam val ) {
kembali ( val * val ) ;
}
} ;
ke dalam utama ( ) {
SquareClass s_functor ;
cout << 'Kuadrat dari nilai yang diberikan adalah ' << akhir ;
cout << s_fungsi ( 5 ) ;

kembali 0 ;
}

Keluaran:

Kita mendapatkan output setelah memanggil objek “my_functor” dari kelas “SqaureClass” seperti fungsi “my_functor()” dan kemudian meneruskan “5”. Kita mendapatkan “25” sebagai kuadrat dari angka “5”.

Contoh 3:

File header “iostream” disertakan di sini karena berisi deklarasi fungsi, dan namespace “std” diperkenalkan setelahnya. Kelas “ProductFunctor” kemudian dibuat. Konstruktor publik, “publik”, diketik di bawahnya dan fungsi “operator()” dari tipe data “int” ditempatkan di bawahnya. Kami mengganti fungsi ini di sini dan meneruskan dua parameter ke dalamnya: “int var1” dan “int var2”.

Kemudian, kita menggunakan “return” di bawah ini dan mengalikan kedua variabel yang menghasilkan hasil perkalian kedua angka “var1 * var2”. Fungsi “main()” kemudian dipanggil di sini dan kita menghasilkan objek kelas dengan nama “P_functor” dari kelas “ProductFunctor”. Kemudian, kita menginisialisasi variabel baru dengan nama “pro_result” dan menetapkan objek “P_functor” sebagai fungsi “P_functor()” setelah memanggilnya.

Kami meneruskan “28” dan “63” sebagai parameter. Ini akan mengalikan kedua nilai dan menyimpan hasilnya dalam variabel “pro_result” yang kita cetak di bawahnya menggunakan “cout” dan meneruskan “pro_result” di dalamnya.

Kode 3:

#termasuk
menggunakan ruang nama std ;
kelas Fungsi Produk {
publik :
ke dalam operator ( ) ( ke dalam var1, ke dalam var2 ) {
kembali var1 * var2 ;
}
} ;
ke dalam utama ( ) {
Fungsi Produk P_functor ;
ke dalam hasil_prod = P_fungsi ( 28 , 63 ) ;
cout << 'Produknya adalah:' << hasil_prod << akhir ;
kembali 0 ;
}

Keluaran:

Kita mendapatkan produk setelah memanggil objek “P_functor” sebagai fungsi “P_functor()” dan meneruskan nilainya ke sana. Produk dari nilai-nilai tersebut adalah “1764”.

Contoh 4:

'GreetingFunctorClass' dihasilkan dalam contoh ini. Kemudian, kita memasukkan konstruktor “publik” dan mengganti fungsi “operator()” di konstruktor “publik” ini. Kami mengetik “Halo! Saya seorang Programmer C++ di sini” setelah menempatkan “cout” di bawah fungsi “operator()”.

Sekarang dan seterusnya, kita menyebutnya “main()”. Kita membuat “g_functor” di sini sebagai objek “GreetingFunctorClass” dan kemudian memanggil objek “g_functor” ini sebagai fungsi “g_functor()”. Ini memberikan hasil yang kami tambahkan dalam fungsi “operator()” sambil menimpanya.

Kode 4:

#termasuk
menggunakan ruang nama std ;
menggunakan ruang nama std ;
kelas SalamFunctorClass {
publik :
ruang kosong operator ( ) ( ) {
cout << 'Halo! Saya seorang Programmer C++ di sini' ;
}
} ;
ke dalam utama ( ) {
SalamFunctorClass g_functor ;
g_fungsi ( ) ;
kembali 0 ;
}

Keluaran:

Di sini, kita mungkin memperhatikan bahwa pernyataan yang kita tambahkan ketika kita mengesampingkan fungsi “operator()” dalam kode kita ditampilkan di sini saat kita memanggil objek kelas seperti sebuah fungsi.

Contoh 5:

“bits/stdc++.h” disertakan kali ini karena berisi semua deklarasi fungsi yang diperlukan. Kemudian, namespace “std” ditempatkan di sini. Kelas yang kita buat di sini adalah kelas “incrementFunctor”. Kemudian, kita membuat konstruktor “pribadi” dan menginisialisasi variabel “int_num” dengan tipe data “int”.

Di bawahnya, konstruktor “publik”, kita tempatkan “instageFunctor” dan masukkan “int n1” di dalamnya. Kemudian kita ketik “int_num(n1)” setelah menempatkan “:”. Kemudian, kita mengganti fungsi yang merupakan fungsi “operator()” dari tipe data “int” dan mendeklarasikan “int arrOfNum” di sini. Kami kemudian menggunakan 'return' dan memasukkan 'int_num + arrOfNum'. Sekarang, ini menambah nilai “arrOfNum”, menambahkan nilai “int_num” ke dalamnya, dan mengembalikannya ke sini.

Setelah memanggil “main()”, kami menginisialisasi “arrOfNum” dan menetapkan nilai integer yang berbeda di sini. Kemudian, variabel “n1” diinisialisasi di mana kita menambahkan fungsi “sizeof” seperti “sizeof(arrOfNum)/sizeof(arrOfNum[0])”. Setelah ini, “additionNumber” kemudian diinisialisasi dengan “3”. Sekarang, kami menggunakan fungsi “transform()”. “Transform()” ini sama dengan membuat objek kelas “increamentFunctor” dan kemudian memanggil objeknya. Setelah ini, kita menggunakan perulangan “for” dan kemudian “cout” “arrOfNum[i]”.

Kode 5:

#termasuk
menggunakan ruang nama std ;
kelas incrementFunctor
{
pribadi :
ke dalam int_num ;
publik :
incrementFunctor ( ke dalam n1 ) : int_num ( n1 ) { }
ke dalam operator ( ) ( ke dalam arrOfNum ) konstanta {
kembali int_num + arrOfNum ;
}
} ;
ke dalam utama ( )
{
ke dalam arrOfNum [ ] = { 6 , 3 , 2 , 1 , 9 , 0 , 8 } ;
ke dalam n1 = ukuran dari ( arrOfNum ) / ukuran dari ( arrOfNum [ 0 ] ) ;
ke dalam nomor tambahan = 3 ;
mengubah ( arrOfNum, arrOfNum + n1, arrOfNum, incrementFunctor ( nomor tambahan ) ) ;

untuk ( ke dalam Saya = 0 ; Saya < n1 ; Saya ++ )
cout << arrOfNum [ Saya ] << ' ' ;
}

Keluaran:

Hasil kode ditampilkan di sini di mana “incrementFunctor” adalah “Functor” yang digunakan sebagai fungsi.

Contoh 6:

Dalam kode ini, kami menggunakan fungsi “lebih besar” yang telah ditentukan sebelumnya. Di sini, kami menyertakan empat file header berbeda karena kami memerlukannya dalam kode kami karena fungsi atau metode yang kami perlukan dalam kode kami dideklarasikan di dalamnya. Kemudian, setelah menambahkan “std” dan kemudian memanggil “main()”, kita menginisialisasi vektor “myIntegerVector”. Kami memasukkan beberapa nilai yang tidak disortir ke dalam vektor ini. Di bawahnya, kita menerapkan fungsi “sort” untuk mengurutkan nilai-nilai vektor ini.

Saat kita menggunakan fungsi ini, fungsi ini mengurutkan nilai dalam urutan menaik. Namun kami menggunakan “lebih besar” di sini yang merupakan fungsi standar di C++ yang memberikan hasil pengurutan secara menurun. Setelah ini, kami menampilkan nilai yang diurutkan dengan bantuan loop “for” dan kemudian “cout”.

Kode 6:

#termasuk
#sertakan
#termasuk
#termasuk
menggunakan ruang nama std ;

ke dalam utama ( ) {
vektor < ke dalam > myIntegerVector = { 13 , dua puluh satu , 19 , 44 , 32 , 42 , 9 , 6 } ;
menyortir ( myIntegerVector. mulai ( ) , myIntegerVector. akhir ( ) , lebih besar < ke dalam > ( ) ) ;
untuk ( ke dalam vec_num : myIntegerVector ) {
cout << vec_num << '' ;
}
kembali 0 ;
}

Keluaran:

Semua nilai vektor diurutkan secara menurun dengan bantuan fungsi yang telah ditentukan sebelumnya di C++ yang merupakan fungsi “lebih besar”, dan definisinya tersedia di file header “fungsional”.

Kesimpulan

Konsep “functor C++” dieksplorasi secara mendalam dalam artikel ini. Kita mempelajari bahwa suatu objek dapat dipanggil sebagai fungsi untuk membebani fungsi yang disebut “operator()”. Ini dikenal sebagai fungsi. Akses publik harus disediakan agar kelebihan beban “operator()” dapat digunakan sebagaimana dimaksud. Kami mengilustrasikan berbagai contoh di mana kami menggunakan 'fungsi' dan 'fungsi' yang telah ditentukan sebelumnya dalam kode kami.