|
|
1
3
此外,在一个类中加载如此多的任务可能没有那么好。例如,Boost
|
|
|
2
7
不幸的是,没有。两者都返回相同的类型,
现在可以按如下方式实例化对象:
|
|
3
2
另一方面,您可以使用特定的
当然,这意味着您有适当的逻辑,但它是封装的。您还可以添加过载
最后,还可以通过构造函数的重载来完成。关键是不要说
|
|
|
4
2
我认为真正的解决方案是去掉你自己的autopointer类,并去掉使用C样式数组。我知道这已经说过很多次了,但是使用C样式的数组已经没有什么意义了。几乎所有你能用它们做的事情都可以用
|
|
|
5
2
这是不可能的,因为
常见的解决方案之一是 删除程序 . 向类中再添加一个模板参数,以便为指针传递自定义的删除器。这会使你的班更普及。您可以创建如下的默认删除程序:
对于数组,可以传递自定义删除器:
最简单的实现是:
然后您可以使用它,如下所示:
您可以使类更复杂,这样它就可以为deleter推断类型。 |
|
6
1
但我不认为你走运。毕竟,您的示例没有管理指向
红鼻子独角兽提到,
不幸的是,
所以,你需要两个析构函数,一个来调用
因为某种原因,我只是屈服于;v) 不幸的是,这不适用于动态大小的数组,所以我将写下另一个答案。 |
|
7
1
第二次尝试
让一个智能指针类智能化数组是很容易的。正如您所怀疑的,如果您知道构造函数是一个数组,那么就不需要向它提供运行时标志或参数。唯一的问题是
替代
|
|
|
sungjun cho · 函数模板重叠多个匹配项 1 年前 |
|
|
Amaterastis · 基类接受子类和内部子类的模板参数 1 年前 |
|
|
111111 · 确定作为模板参数传递的函数的参数类型 1 年前 |
|
|
Sam · 在LaTeX中将图像添加到预制的投影仪中 1 年前 |
|
|
user416983 · 模板函数成员作为模板参数 1 年前 |
|
|
PyOPTProblem · c++如何模板化模板参数的部分实例化? 1 年前 |