Pembina kelas C ++

C Class Constructors



Pembina seperti fungsi. Ini digunakan untuk menginisialisasi nilai dan objek kelas. Pembina ini dimulakan semasa objek kelas dibuat. Pembina secara langsung tidak mengembalikan nilai. Untuk mendapatkan nilai konstruktor, kita perlu menerangkan fungsi yang berasingan kerana konstruktor tidak mempunyai jenis pulangan. Konstruktor berbeza dari fungsi sederhana dengan cara yang berbeza. Pembina dibuat semasa objek dihasilkan. Ia ditakrifkan di segmen awam kelas.

Dalam artikel ini, kita akan membincangkan semua jenis pembina dengan contoh.







Contoh 1

Ini adalah gambaran konstruktor lalai. Seperti yang kita ketahui bahawa konstruktor secara lalai dibuat secara automatik ketika kita membuat objek kelas. Ini dipanggil penciptaan tersirat. Pembina mempunyai nama yang sama dengan nama kelas. Pertimbangkan fail yang mempunyai kod c ++ konstruktor kerana kita tahu bahawa kelas mempunyai dua pilihan, peribadi dan awam. Bahagian peribadi mengandungi pemboleh ubah data, sedangkan bahagian umum adalah untuk fungsi yang diambil oleh objek apa pun. Jadi konstruktor juga ditakrifkan di bahagian umum.



Bilangan bulat()

{

x=lima puluh;

dan=dua puluh;

};

Dalam konstruktor ini, nilai diberikan kepada pemboleh ubah. Sekiranya kita ingin mendapatkan nilai sebagai output, kita harus mencetaknya dalam program utama.







Setelah menentukan konstruktor, kelas ditutup. Semasa memasuki program utama, kami akan mencetak nilai dengan menggunakan objek. Objek itu selalu mencapai konstruktor kerana ini adalah bahagian kelas. Penciptaan objek sangat mudah. Ia dilakukan dengan memperkenalkannya dengan nama kelas. Itulah bilangan bulat dalam contoh ini. Nilai akan diambil melalui kaedah titik. iaitu, a.x.

Kita dapat melihat output kod sumber dari terminal di Ubuntu. Pendekatan yang digunakan untuk mendapatkan output agak mudah. Mula-mula kod disusun, dan kemudian ia dilaksanakan. Kami menggunakan penyusun G ++ untuk proses penyusunan. Sama seperti C, kita menggunakan GCC.



$ G++ -atau filec filec.c

./filec

-O digunakan untuk menyimpan output dalam fail.

Contoh 2

Dalam ilustrasi ini, kita akan menerangkan pembangun parameter. Tidak seperti contoh sebelumnya, kita juga boleh menyampaikan hujah kepada pembangun dari program utama. Apabila objek dihasilkan, nilai-nilai ini secara automatik diteruskan ke pemboleh ubah yang ada di konstruktor untuk menerima nilainya. Sebilangan kegunaan konstruktor parameter adalah.

  • Ia digunakan untuk menginisialisasi pemboleh ubah yang berbeza dengan nilai yang berbeza di dalam konstruktor ketika diinisialisasi.
  • Ia digunakan dalam overloading konstruktor. Ia ditakrifkan kemudian dalam artikel.

Sekarang mari kita perhatikan ilustrasi yang telah kita jelaskan untuk menghuraikan konsep ini. Kelas mempunyai nama bilangan bulat, jadi pasti, nama pembina juga akan sama. Dalam parameter konstruktor, terdapat dua nilai jenis integer. Ini diinisialisasi untuk menerima nilai-nilai yang dikirim dari program utama sebagai panggilan fungsi.

Bilangan bulat( intx,intdan)

{

KE=x;

B=dan;

};

Dalam contoh sebelumnya, pemboleh ubah di dalam konstruktor diberi nilai. Manakala dalam konstruktor ini, pemboleh ubah ditugaskan dengan pemboleh ubah yang mempunyai nilai.

Sekiranya kita ingin mengambil paparan, kita perlu menentukan fungsi yang akan mengembalikan nilai kerana tidak mungkin untuk mengakses pemboleh ubah yang diinisialisasi secara langsung dari konstruktor.

intgetX()

{

kembalike;

};

Sekarang kita akan melihat bahagian utama program ini. Di sini apabila objek dibuat, anda dapat melihat nilai di bahagian parameter.

Integer v(70,55); {tersirat}

integer v=bilangan bulat(10,lima belas); {eksplisit}

Dan untuk memaparkan hasilnya, kami akan memanggil fungsi yang dibuat di dalam kelas dengan menggunakan objek. iaitu v.getx ().

Kaedah pengambilan rekod adalah sama seperti yang diperkenalkan sebelumnya.

Contoh 3

Contoh ini berkaitan dengan penyalinan konstruktor kelas. Pembina yang disalin digunakan untuk menginisialisasi objek dengan objek lain dari kelas serupa yang dimiliki. Pembina ini menyalin data yang terdapat dalam satu objek ke objek lain. Parameter konstruktor ini mengandungi alamat objek kelas. Pertimbangkan contoh yang diberikan, di mana kita telah memperkenalkan dua pemboleh ubah dari jenis data yang sama sehingga ini dapat diakses dengan fungsi apa pun di dalam kelas. Pembina akan menerima nilai melalui pemboleh ubah. Pada masa yang sama, konstruktor yang disalin hanya akan menerima objek. Dan dengan bantuan objek ini, nilai akan diambil.

Dinding(dinding&obj)

{

Panjang=objpanjang;

Ketinggian=objketinggian;

}

Kita mesti mengira luas, jadi fungsi untuk pengiraan ini ditentukan di sini. Ini akan mengembalikan nilai ke fungsi utama ketika dipanggil. Sekarang kita akan memerhatikan program utama kod tersebut

Panggilan fungsi konstruktor yang disalin akan seperti ini.

Dinding tembok2=dinding1;

Objek memanggil konstruktor yang disalin, dan data melalui objek pertama disalin melaluinya. Selanjutnya, kita akan memanggil fungsi untuk mengira luas melalui kedua objek.

Dari hasilnya, anda dapat melihat bahawa hasil dari kedua-dua pembina adalah sama. Ini bermaksud keseluruhan data berjaya disalin oleh objek tersebut.

Contoh 4

Ini adalah gambaran mengenai kelebihan beban konstruktor. Ia berlaku apabila kita harus menggunakan lebih daripada satu fungsi di dalam kelas. Lebihan konstruktor mengikuti arahan pembina parameter. Semua pembina di kelas mempunyai nama yang serupa dengan kelas. Tetapi setiap pembina diberi parameter yang berbeza. Setiap konstruktor dipanggil mengikut hujah ketika kita membuat objek.

Pertimbangkan contoh yang diberikan, di mana kita telah menggunakan tiga pembina. Salah satunya tanpa sebarang hujah. Yang kedua adalah dengan satu hujah, sedangkan yang ketiga adalah dengan dua hujah. Ilustrasi ini serupa dengan yang sebelumnya. Semasa kami mengira luas dalam fungsi berasingan yang dijelaskan di dalam kelas.

// Pembina dengan dua hujah

bentuk(intx,intdan)

{

ke=x;

b=dan;

};

Sekarang, menuju ke program utama, kita dapat melihat bahawa ketika kita memulakan objek kelas, konstruktor tanpa argumen dipanggil secara lalai. Sekarang kita perlu memanggil pembina lain dengan objek yang berbeza dengan argumen yang berbeza.

Bentuk s;

Bentuk s2(8);

Bentuk s3(4,2);

Fungsi di mana kita dapat menampilkan nilai dipanggil melalui objek yang sama yang dibuat.

Untuk melihat hasilnya, kami akan menggunakan kaedah terminal perintah yang sama dengan menyusun dan menjalankan kod yang ada dalam file.

Dari hasilnya, kita dapat melihat bahawa jawapannya adalah sama untuk setiap pembina.

Kesimpulannya

Dalam tutorial ini, kita telah melihat asas-asas pembina dan fungsi mereka, termasuk bagaimana membebankannya. Pembina digunakan untuk memulakan pemboleh ubah dengan nilai.