در این آموزش، مثال های مربوط به انتقال ساختارها به عنوان آرگومان به تابع و نحوه استفاده از آن ها در برنامه آورده شده است.
متغیرهای struct را می توان به یک تابع ارسال کرد و به عنوان آرگومان های عادی نیز بازگشت داد.
انتقال struct به تابع در C++
متغیر struct می تواند مانند ارسال آرگومان ساده به تابع، فرستاده شود. مثال زیر را در نظر بگیرید:
مثال ۱ : struct و تابع در C++
#include <iostream>
using namespace std;
struct Person
{
char name[50];
int age;
float salary;
};
void displayData(Person); // Function declaration
int main()
{
Person p;
cout << “Enter Full name: “;
cin.get(p.name, 50);
cout << “Enter age: “;
cin >> p.age;
cout << “Enter salary: “;
cin >> p.salary;
// Function call with structure variable as an argument
displayData(p);
return 0;
}
void displayData(Person p)
{
cout << “\nDisplaying Information.” << endl;
cout << “Name: ” << p.name << endl;
cout <<“Age: ” << p.age << endl;
cout << “Salary: ” << p.salary;
}
خروجی
Enter Full name: Bill Jobs
Enter age: 55
Enter salary: 34233.4
Displaying Information.
Name: Bill Jobs
Age: 55
Salary: 34233.4
در این برنامه، در تابع ()main از کاربر خواسته می شود که name، age و salary ساختار Person را وارد کند.
سپس، متغیر ساختار p به یک تابع ارسال می شود.
displayData(p);
تابع ()displayData متغیر بازگشتی ندارد و فقط یک آرگومان از نوع Person می گیرد.
سپس اعضای ساختار p نمایش داده می شوند.
مثال ۲ : struct بازگشتی از تابع در C++
#include <iostream>
using namespace std;
struct Person {
char name[50];
int age;
float salary;
};
Person getData(Person);
void displayData(Person);
int main()
{
Person p;
p = getData(p);
displayData(p);
return 0;
}
Person getData(Person p) {
cout << “Enter Full name: “;
cin.get(p.name, 50);
cout << “Enter age: “;
cin >> p.age;
cout << “Enter salary: “;
cin >> p.salary;
return p;
}
void displayData(Person p)
{
cout << “\nDisplaying Information.” << endl;
cout << “Name: ” << p.name << endl;
cout <<“Age: ” << p.age << endl;
cout << “Salary: ” << p.salary;
}
خروجی این برنامه مشابه برنامه بالا است.
در این برنامه، متغیر ساختار p از نوع ساختار Person در زیر تابع ()main تعریف شده است.
متغیر ساختار p به تابع ()getData ارسال می شود که از کاربر ورودی می گیرد و سپس به تابع () mainبازگردانده می شود.
p = getData(p);
نکته: مقدار تمام اعضای یک متغیر struct را می توان به struct دیگری با استفاده از = اختصاص داد در صورتی که هر دو متغیر struct یک نوع باشند. لازم نیست هر کاربر را به صورت دستی اختصاص دهید.
سپس متغیر ساختار p به تابع ()displayData منتقل می شود که اطلاعات را نمایش می دهد.