در این آموزش، یاد خواهید گرفت که اشیاء را به تابع ارسال و دریافت کنید.
در برنامه نویسی C++، اشیا به شیوه ای مشابه با ساختار ها (struct) به تابع ارسال می شوند.
توی این پک فوق العاده، سی پلاس پلاس رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با سی پلاس پلاس به عمق فهم برنامه نویسی شیرجه بزن، پروژه محور یاد بگیر و حسابی پول در بیار!
توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار!
چگونه می توان اشیاء را به تابع انتقال داد؟
مثال ۱ : انتقال اشیا به تابع
برنامه زیر دو عدد پیچیده(شی) را با ارسال آن ها به تابع جمع می کند.
- #include <iostream>
- using namespace std;
- class Complex
- {
- private:
- int real;
- int imag;
- public:
- Complex(): real(0), imag(0) { }
- void readData()
- {
- cout << “Enter real and imaginary number respectively:”<<endl;
- cin >> real >> imag;
- }
- void addComplexNumbers(Complex comp1, Complex comp2)
- {
- // real represents the real data of object c3 because this function is called using code c3.add(c1,c2);
- real=comp1.real+comp2.real;
- // imag represents the imag data of object c3 because this function is called using code c3.add(c1,c2);
- imag=comp1.imag+comp2.imag;
- }
- void displaySum()
- {
- cout << “Sum = ” << real<< “+” << imag << “i”;
- }
- };
- int main()
- {
- Complex c1,c2,c3;
- c1.readData();
- c2.readData();
- c3.addComplexNumbers(c1, c2);
- c3.displaySum();
- return 0;
- }
خروجی
Enter real and imaginary number respectively:
۲
۴
Enter real and imaginary number respectively:
-۳
۴
Sum = -1+8i
چگونه از تابع شی برگردانیم؟
در برنامه نویسی C++، اشیا همانند ساختار ها (struct) بازگردانده می شوند.
مثال ۲ : ارسال و بازگشت شی از تابع
در این برنامه، مجموع اعداد پیچیده (شی) به تابع ()main باز گردانده و نمایش داده می شود.
- #include <iostream>
- using namespace std;
- class Complex
- {
- private:
- int real;
- int imag;
- public:
- Complex(): real(0), imag(0) { }
- void readData()
- {
- cout << “Enter real and imaginary number respectively:”<<endl;
- cin >> real >> imag;
- }
- Complex addComplexNumbers(Complex comp2)
- {
- Complex temp;
- // real represents the real data of object c3 because this function is called using code c3.add(c1,c2);
- temp.real = real+comp2.real;
- // imag represents the imag data of object c3 because this function is called using code c3.add(c1,c2);
- temp.imag = imag+comp2.imag;
- return temp;
- }
- void displayData()
- {
- cout << “Sum = ” << real << “+” << imag << “i”;
- }
- };
- int main()
- {
- Complex c1, c2, c3;
- c1.readData();
- c2.readData();
- c3 = c1.addComplexNumbers(c2);
- c3.displayData();
- return 0;
- }