Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

อะไรคือความแตกต่างระหว่างการสร้างอินสแตนซ์ของวัตถุ C ++ โดยใช้ new vs. ไม่มี new?


ใน C ++ เราสามารถยกตัวอย่างอ็อบเจ็กต์คลาสโดยใช้คีย์เวิร์ดใหม่หรือไม่ก็ได้ หากไม่ได้ใช้คีย์เวิร์ดใหม่ ก็เหมือนกับออบเจกต์ปกติ สิ่งนี้จะถูกเก็บไว้ที่ส่วนสแต็ก สิ่งนี้จะถูกทำลายเมื่อขอบเขตสิ้นสุดลง แต่สำหรับกรณีที่เราต้องการจัดสรรพื้นที่สำหรับรายการแบบไดนามิก เราก็สามารถสร้างพอยน์เตอร์ของคลาสนั้น และสร้างอินสแตนซ์โดยใช้ตัวดำเนินการใหม่

ใน C++ จะใช้หน่วยความจำใหม่เพื่อจัดสรรหน่วยความจำแบบไดนามิก

ตัวอย่าง

#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();
}

ผลลัพธ์

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