我希望在删除对象和数据类型时完全掌握,包括我应该注意的所有异常和问题。这是我到目前为止所理解的。请更正任何一项并添加我错过的条件/情况。
如果我在堆栈上创建对象或数据类型,当我离开创建它的范围时,总是删除。
如果我在堆上创建了一个对象或数据类型,当我在其上调用delete时,它只会删除 。
当从函数返回一个对象或数据类型时,它被复制并且复制将从函数调用中传出,除非我这样做:
return &ans;
其中ans是我的对象我正在返回,在这种情况下返回对象或数据类型。
将参数传递给函数使用&同样避免复制参数。
假设我的理解到目前为止是正确的,那么复制数据类型或对象是否会使用我定义的复制构造函数?
感谢您的帮助