new关键字或标准方法(不使用new),有不同的实例化类的方法。
要么使用new
Class *object = new Class();
或使用标准方式
Class object;
我对何时使用这两种方法感到困惑。有人可以说明何时使用或哪种实例化方法是首选的吗?
Object* o = new Object
您正在创建动态分配,并且o是指针。通常用于引用或作为列表和树的实现来节省内存。必须使用delete删除指针的内存,因为一旦超出范围,该对象仍将存在,但您将无权访问,这称为内存泄漏。
在另一个声明中
Object o; // or Object o = Object()
您声明的是对象的实例,而不是指针。指针包含对象的引用,而不是对象本身。
所以回答您的问题的首选方法取决于您,但通常您会希望使用不带新版本的版本。
new关键字用于动态分配内存。通过使用new关键字,如果有足够的可用内存,它将初始化堆中的内存并返回地址。然后,您有责任使用delete。
释放内存。否则,如果不使用new运算符,则超出范围时将自动销毁该对象。