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

Sự khác biệt giữa việc khởi tạo một đối tượng C ++ bằng cách sử dụng mới và không sử dụng mới là gì?

Trong C ++, chúng ta có thể khởi tạo đối tượng lớp có hoặc không sử dụng từ khóa new. Nếu từ khóa mới không được sử dụng, thì nó giống như đối tượng bình thường. Điều này sẽ được lưu trữ tại phần ngăn xếp. Điều này sẽ bị phá hủy khi phạm vi kết thúc. Nhưng đối với trường hợp chúng ta muốn phân bổ động không gian cho mục, thì chúng ta có thể tạo con trỏ của lớp đó và khởi tạo bằng toán tử mới.

Trong C ++, cái mới được sử dụng để cấp phát động bộ nhớ.

Ví dụ

#include <iostream>
using namespace std;
class Point {
   int x, y, z;
   public:
      Point(int x, int y, int z) {
         this->x = x;
         this->y = y;
         this->z = z;
      }
      void display() {
         cout << "(" << x << ", " << y << ", " << z << ")" << endl;
      }
};
int main() {
   Point p1(10, 15, 20);
   p1.display();
   Point *ptr;
   ptr = new Point(50, 60, 70);
   ptr->display();
}

Đầu ra

(10, 15, 20)
(50, 60, 70)