Rumah > pembangunan bahagian belakang > C++ > Bolehkah Pembina C Dirantai, dan Jika Ya, Bagaimana?

Bolehkah Pembina C Dirantai, dan Jika Ya, Bagaimana?

Mary-Kate Olsen
Lepaskan: 2024-12-21 02:58:13
asal
171 orang telah melayarinya

Can C   Constructors Be Chained, and If So, How?

Bolehkah Constructor Chaining Dilakukan dalam C ?

Dalam C#, keupayaan untuk memanggil pembina dalam susunan tertentu adalah amalan biasa. Sebagai pembangun C# yang ingin meniru fungsi ini dalam C , persoalan timbul: bolehkah ia dicapai melalui rantaian pembina?

C 11 dan Seterusnya

Bergembiralah! C 11 memperkenalkan ciri yang dikenali sebagai mewakilkan pembina yang meniru rantaian pembina yang dilihat dalam C#. Begini cara ia ditulis:

class Foo {
public:
  Foo(char x, int y) {}
  Foo(int y) : Foo('a', y) {}
};
Salin selepas log masuk

C 03: Pendekatan Berbeza

Walaupun tiada rantaian pembina langsung dalam C 03, dua penyelesaian wujud:

Parameter Lalai: Gabungkan pembina menggunakan lalai parameter.

class Foo {
public:
  Foo(char x, int y=0); // Combines two constructors (char) and (char, int)
};
Salin selepas log masuk

Kaedah Init: Gunakan kaedah permulaan yang dikongsi.

class Foo {
public:
  Foo(char x);
  Foo(char x, int y);

private:
  void init(char x, int y);
};

Foo::Foo(char x) : init(x, int(x) + 7) {}
Foo::Foo(char x, int y) : init(x, y) {}

void Foo::init(char x, int y) {}
Salin selepas log masuk

Kesimpulannya, C 11 membolehkan rantaian pembina sebenar, manakala C 03 menawarkan penyelesaian seperti parameter lalai dan kaedah init untuk mencapai kefungsian yang serupa.

Atas ialah kandungan terperinci Bolehkah Pembina C Dirantai, dan Jika Ya, Bagaimana?. 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