![]() |
1
9
只有在类中没有直接定义或继承的名为“copy”的成员时,才会生成copy方法。 |
![]() |
2
12
你好像很困惑
如果是
|
![]() |
3
2
|
![]() |
4
2
正如Mirko正确指出的,您不能真正地抽象over copy方法。我支持Daniel的观点,即克隆可能是您想要的,尽管我会用一些帮助程序代码来包装它以简化样板文件。 您可以使用复制功能定义一个mixin trait,然后将其混合到case类中:
这样,您就不用为每个case类添加相同的方法,而是让它们扩展helper特性,从而使它们更干净,并为您节省一些击键。 另一方面,克隆对不可变对象没有意义,因此我推断类的状态是可变的。我建议你重新考虑,如果你真的不能使他们不变,并使用这种类型的克隆只有在最后手段。不变性将保护您免受一类错误的影响。 |
![]() |
5
1
为什么需要创建案例类实例的相同副本?Case类在默认情况下是不可变的,因此可以安全地共享。 在任何情况下,我不认为你能用默认参数做你所要求的:
编译器不会创建具有定义类中所有可选参数组合的方法。默认值插入到调用方法的位置。 |
![]() |
ZeroZ30o · std::包含原子的类的向量 6 年前 |
![]() |
physlexic · 获取文件夹中文件的百分比 6 年前 |
![]() |
Magix · 复制从抽象类派生的对象 6 年前 |
![]() |
physlexic · 在目录之间随机移动多个文件 6 年前 |
![]() |
pindare · 将文件从层次结构递归复制到单个平面文件夹 6 年前 |
![]() |
KayV · 将特定文件从目录和子目录复制到mac中的目标文件夹中 6 年前 |