Object và Hàm

Làm thế nào để truyền và trả về đối tượng từ một hàm trong C++?

Trong bài này, bạn sẽ được học cách truyền đối tượng vào một hàm và trả về đối tượng từ một hàm trong lập trình C++.

Trong lập trình C++, đối tượng có thể được truyền vào một hàm theo cách giống như với cấu trúc.

Cách truyền đối tượng vào hàm?

Ví dụ 1: Truyền đối tượng vào hàm

Chương trình C++ để cộng hai số phức bằng cách truyền đối tượng vào hàm

#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 đại diện cho dữ liệu số thực của đối tượng c3 sử dụng đoạn mã sau c3.add(c1,c2);
            real=comp1.real+comp2.real;

             // imag đại diện cho dữ liệu số ảo của đối tượng c3 sử dụng đoạn mã 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;
}

Đầu ra

Enter real and imaginary number respectively:

2

4

Enter real and imaginary number respectively:

-3

4

Sum = -1+8i

Cách trả về một đối tượng từ hàm?

Trong lập trình C++, đối tượng có thể được trả về từ một hàm theo cách tương tự như với cấu trúc.

Ví dụ 2: Truyền và trả về một đối tượng từ hàm

Trong chương trình này, tổng của các số thực (đối tượng) được trả về hàm main() và hiển thị ra màn hình.

#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 biểu diễn phần dữ liệu thực của đối tượng c3 vì hàm này được gọi thông qua câu lệnh c3.add(c1,c2);
            temp.real = real+comp2.real;

            // imag biểu diễn phần dữ liệu ảo của đối tượng c3 vì hàm này được gọi thông qua câu lệnh 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;
}

 

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *