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

ความแตกต่างระหว่างการสร้าง Object C++ ด้วย new และไม่ใช้ new


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

ใน C++ new ใช้สำหรับจัดสรรหน่วยความจำแบบไดนามิก (Dynamic Memory Allocation)

ตัวอย่าง

#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)