آموزش ساختار و تابع در C++ (به زبان کاملا ساده)
در این آموزش، مثال های مربوط به انتقال ساختارها به عنوان آرگومان به تابع و نحوه استفاده از آن ها در برنامه آورده شده است.
متغیرهای 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 منتقل می شود که اطلاعات را نمایش می دهد.
سلام
پاسخچرا میگن سی پلاس پلاس میتواند از توابع در ساختار استفاده کند ولی c نمیتواند از توابع در ساختار استفاده کند؟