有没有办法在 C++ 函数中为参数设置默认对象?我试过
void func(SomeClass param = new SomeClass(4));
它奏效了。但是,我应该如何知道最终是否必须释放分配的内存?我想在没有指针的情况下做同样的事情,只是堆栈上的一个对象。那可能吗?
有没有办法在 C++ 函数中为参数设置默认对象?我试过
void func(SomeClass param = new SomeClass(4));
它奏效了。但是,我应该如何知道最终是否必须释放分配的内存?我想在没有指针的情况下做同样的事情,只是堆栈上的一个对象。那可能吗?
void func(SomeClass param = new SomeClass(4));
这是行不通的,因为 new 返回一个指针
void func(SomeClass param = SomeClass(4));
应该可以工作并且不需要释放对象。
您几乎拥有它,但您不需要new
关键字。
void func(SomeClass param = SomeClass(4));
与使用相比,此方法的优势new
在于它将在调用结束时自动删除,因此不需要内存管理。
另一种方法是使用共享指针。
您可以使用重载:
void func(const SomeClass&) const;
void func() const {
SomeClass* param = new SomeClass(4);
func(param);
delete param;
}