在C++中,使用new
关键字来创建对象时,与不使用new
关键字来创建对象时,会产生以下几个区别:
- 内存管理:使用
new
关键字来创建对象时,由编译器来决定分配内存的方式,这样可以更有效地利用内存资源。而不使用new
关键字来创建对象时,则需要手动分配内存,可能会浪费一些内存资源。 - 对象生命周期:使用
new
关键字来创建对象时,新分配的对象具有与类的构造函数一致的生命周期,即在类的析构函数被调用时,对象将被销毁。而不使用new
关键字来创建对象时,新分配的对象的生命周期由分配的内存决定,可能在类的析构函数之后还会保留对象的状态。 - 变量访问:在使用
new
关键字来创建对象时,如果类定义了私有成员变量,则只能在类的内部访问这些变量,而不能在类的外部访问。而不使用new
关键字来创建对象时,如果类定义了私有成员变量,则可以在类的内部和外部访问这些变量。 - 继承:在使用
new
关键字来创建对象时,子类的对象将继承父类的非私有成员变量和非私有成员函数。而不使用new
关键字来创建对象时,子类的对象将重新定义父类的非私有成员变量和非私有成员函数。 - 多态:使用
new
关键字来创建对象时,如果类定义了多态成员函数,则在调用这些多态成员函数时,将创建对应类型的新对象,而不是调用父类的非多态成员函数。而不使用new
关键字来创建对象时,如果类定义了多态成员函数,则仍然调用父类的非多态成员函数。
总的来说,使用new
关键字来创建对象可以更有效地利用内存资源,具有更好的对象生命周期管理,可以避免手动分配内存带来的浪费,并且可以实现更好的多态性。
########################
标签:对象,创建,成员,创建对象,C++,多态,关键字,new From: https://www.cnblogs.com/herd/p/17364082.html