在C++中,使用new和不使用*来创建对象的主要区别在于内存分配的位置和对象的控制性。具体来说:
使用new会在堆上分配内存,而不使用的new(即直接创建对象)则在栈上分配内存。
堆内存的分配是动态的,这意味着我们可以在运行时决定何时以及如何创建和销毁对象。这为大程序中内存管理的灵活性提供了帮助。
由于堆内存需要手动管理,使用new分配的内存必须显式地使用delete来释放,否则可能会导致内存泄漏。
对于小程序,由于内存管理相对简单,通常不需要使用new来创建对象。
MyClass *ptr = new MyClass();MyClass obj;