beelzebub کاربر جدید
تاريخ عضويت: 2 شنبه 11 آبان 1383 تعداد ارسالها: 2
5 شنبه 11 مرداد 1386 - 00:44 |
|
|
ساختارها :
بعضي مواقع ما احتياج داريم تا چند نوع عنصر غير همنوع رو با يك نام استفاده كنيم. اينجاست كه ساختمان ها مورد استفاده قرار مي گيرند
مثلا ما مي خواهيم در يك دانشگاه اطلاعات برخي از دانشجويان مثل نام، نام خانوادگي، سن، شماره دانشجويي آنها رو ذخيره كنيم
به اين صورت يك ساختار با اين مقادير مي سازيم
اين تعريف ساخار مي تونه قبل از تابع main قرار بگيره
كد: |
struct studentInfo
{
char name[20];
char family[20];
int age;
int stNumber;
};
|
هر ساختار با لغت كليدي struct آغاز و بعد آن هر نامي مي تونه باشه مثل studentInfo
بعد داخل دو اكولاد متغيرهاي مورد نياز و در انتهاي آكولاد آخر يه ويرگول نقطه قرار مي گيره
بعد براي استفاد از اين ساختار بايد يك متغير از نوع ساختاري كه ساختيم بسازيم
اين متغيير مي تونه داخل تابع main مثل ديگر متغير ها تعريف بشه با اين تفاوت كه نوعش به صورت ساختار هست
تا اينجا به اين صورت
كد: |
struct studentInfo
{
char name[20];
char family[20];
int age;
int number;
};
int main()
{
studentInfo stInfo;
return 0;
}
|
كه stInfo متغييري هست از نوع ساختار studentInfo
براي دسترسي به متغيير هاي داخل ساختمان مثل نام دانشجويي و ... به اين صورت عمل ميكنيم
كد: |
stInfo.name
stInfo.family
stInfo.age
stInfo.number
|
بعد متغير stInfo يه نقطه و بعد نام متغيري كه داخل ساختار قرار داره
و ميتوان با هر كدام مثل يك متغيير عادي رفتار كرد
كد: |
stInfo.age = 34
stInfo.number = 56464
|
خوب اين اطلاعات براي يك دانشجوست براي اينكه مثلا براي 100 دانشجو اين كارو بكنيم بايد يك آرايه از نوع اون ساختار بسازيم اينجوري
كد: |
studentInfo stInfo[100];
|
و دسترسي به مقادري به اين صورت
كد: |
stInfo[0].name
stInfo[0].family
stInfo[0].age
stInfo[0].number
stInfo[1].name
stInfo[1].family
stInfo[1].age
stInfo[1].number
.
.
.
.
stInfo[99].name
stInfo[99].family
stInfo[99].age
stInfo[99].number
|
و براي قالبها :
ما تابعي داريم مي خواهيم با همون الگويي كه هست براي چندين نوع مثل int , float , double و ... استفادش كنيم
مثلا تابعي كه ماكزيمم سه عدد رو ميگيره
ما همچين الگويي مي سازيم
كد: |
template < class T >
T maximum( T value1, T value2, T vulaue3)
{
T maximumValue = vulue1;
if ( value2 > maximumValue )
maximumValue = value2;
if ( value3 > maximumValue )
maximumValue = value3;
return maximumValue;
}
|
خوب با اين الگو مثلا در جايي خاستيم ماكزيمم سه عدد صحيح (int) رو بيگريم
اينجور استفاده ميكنيم
كد: |
int num1, num2, num3, max
max = maximum(num1, num2, num3);
|
int به طور خودكار جايگزين T در قالب مي شه و نتيجه ماكزيمم به داده مي شه
براي نوع هاي ديگه هم به اين شكل |
|
|