ارسال ساختارها (Pass Structures)
گاهی داده ها گروهی هستند. این جا «ساختار (Structure)» کمک می کند. ساختار یعنی چند متغیر کنار هم. مثل کارت مشخصات خودرو. حالا می توانیم ساختار را به تابع بفرستیم.
ارسال ساختار به تابع
می توانی یک ساختار را مثل متغیر معمولی بفرستی. سپس داخل تابع، فیلدها را بخوانی و استفاده کنی.
مثال: ارسال با کپی (by value)
struct Car {
string brand;
int year;
};
void myFunction(Car c) {
cout << "Brand: " << c.brand << ", Year: " << c.year << "\n";
}
int main() {
Car myCar = {"Toyota", 2020};
myFunction(myCar);
return 0;
}
نکته: این روش کپی می سازد. داده اصلی تغییر نمی کند.
ارسال با ارجاع برای تغییر
گاهی می خواهی داده اصلی عوض شود. پس «ارجاع (Reference)» بفرست. ارجاع یعنی میانبر به همان شیء.
مثال: افزایش سال خودرو با ارجاع
struct Car {
string brand;
int year;
};
void updateYear(Car & c) {
c.year++;
}
int main() {
Car myCar = {"Toyota", 2020};
updateYear(myCar);
cout << "The " << myCar.brand << " is now from year " << myCar.year << ".\n";
return 0;
}
هشدار: با ارجاع، تابع واقعاً داده اصلی را تغییر می دهد.
گام های عملی ارسال ساختارها
- ساختار را تعریف کن؛ فیلدها را مشخص کن.
- تابع را بساز؛ ورودی اش را ساختار بده.
- در
mainنمونه بساز و آن را ارسال کن.
مطالعه و لینک ها
منبع: Pass Structures to a Function.
پیش نیازها: ارسال آرایه ها و ارسال با ارجاع. همچنین صفحه اصلی توابع را ببین.
جمع بندی سریع
- ارسال ساختارها ساده و کاربردی است.
- ارسال عادی، کپی می سازد.
- ارسال با ارجاع، داده اصلی را تغییر می دهد.
- ساختار برای داده های گروهی عالی است.