PDA

View Full Version : محل مقدار دهی اولیه در سازنده ها



Sepidar
جمعه 11 فروردین 1385, 19:09 عصر
چرا تو C++، در زمان ساخت کلاس، به متغیرها خارج از کد توسط سازنده ها مقدار دهی اولیه میشه؟
در واقع منظورم اینه که چرا به جای تعریف constructor به صورت

Foo(): aField(0) {} نمینویسیم

Foo()
{
aField=0;
} ؟

بعید میدونم این موضوع فقط به سینتکس مربوط باشه.

seyedof
جمعه 11 فروردین 1385, 20:49 عصر
سلام
یک دلیلش برای متغیرهای از نوع const است. این نوع اعضا داده ای رو نمیشه داخل بدنه سازنده مقدار دهی کرد و باید حتما از روش member initializer استفاده کرد. البته فکر کنم توی کلاسهایی هم که چند نوع سازنده دارند اینکار باعث عدم تکرار کد مقدار دهی اولیه میشه.
توی کتاب دایتل در فصل مربوط به کلاسها و const دقیقا این رو توضیح داده.
ضمنا متغیرهای نوع const کاربردشون زیاده از جمله توی بارگذاری عملگرها.
ممنون علی