Computer >> Máy Tính >  >> Lập trình >> C ++

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


Một đối tượng là một thể hiện của một lớp. Bộ nhớ chỉ được cấp phát khi một đối tượng được tạo chứ không phải khi một lớp được định nghĩa.

Một đối tượng có thể được trả về bởi một hàm sử dụng từ khóa return. Một chương trình chứng minh điều này được đưa ra như sau -

Ví dụ

#include <iostream>
using namespace std;
class Point {
   private:
   int x;
   int y;
   public:
   Point(int x1 = 0, int y1 = 0) {
      x = x1;
      y = y1;
   }
   Point addPoint(Point p) {
      Point temp;
      temp.x = x + p.x;
      temp.y = y + p.y;
      return temp;
   }
   void display() {
      cout<<"x = "<< x <<"\n";
      cout<<"y = "<< y <<"\n";
   }
};
int main() {
   Point p1(5,3);
   Point p2(12,6);
   Point p3;
   cout<<"Point 1\n";
   p1.display();
   cout<<"Point 2\n";
   p2.display();
   p3 = p1.addPoint(p2);
   cout<<"The sum of the two points is:\n";
   p3.display();
   return 0;
}

Đầu ra

Kết quả của chương trình trên như sau.

Point 1
x = 5
y = 3
Point 2
x = 12
y = 6
The sum of the two points is:
x = 17
y = 9

Bây giờ, chúng ta hãy hiểu chương trình trên.

Lớp Point có hai thành viên dữ liệu, tức là x và y. Nó có một hàm tạo được tham số hóa và 2 hàm thành viên. Hàm addPoint () thêm hai giá trị Điểm và trả về một đối tượng tạm thời lưu trữ tổng. Hàm display () in ra các giá trị của x và y. Đoạn mã cho điều này được đưa ra như sau.

class Point {
   private:
   int x;
   int y;
   public:
   Point(int x1 = 0, int y1 = 0) {
      x = x1;
      y = y1;
   }
   Point addPoint(Point p) {
      Point temp;
      temp.x = x + p.x;
      temp.y = y + p.y;
      return temp;
   }
   void display() {
      cout<<"x = "<< x <<"\n";
      cout<<"y = "<< y <<"\n";
   }
};

Trong hàm main (), 3 đối tượng của lớp Point được tạo. Giá trị đầu tiên của p1 và p2 được hiển thị. Sau đó, tổng các giá trị trong p1 và p2 được tìm thấy và lưu trữ trong p3 bằng cách gọi hàm addPoint (). Giá trị của p3 được hiển thị. Đoạn mã cho điều này được đưa ra như sau.

Point p1(5,3);
Point p2(12,6);
Point p3;
cout<<"Point 1\n";
p1.display();
cout<<"Point 2\n";
p2.display();
p3 = p1.addPoint(p2);
cout<<"The sum of the two points is:\n";
p3.display();