【发布时间】:2020-01-27 07:19:23
【问题描述】:
我有一个模板类,用于创建和操作锯齿状数组。我可以创建锯齿状数组;添加元素;删除它们;修改它们;打印锯齿状数组等。它似乎至少到目前为止我的测试工作,直到我尝试将先前创建的锯齿状数组传递给它以创建另一个。我的班级目前采用传递的内容,并创建看似克隆的内容,但最终成为同一内存空间的别名。所以,当我去改变我认为是克隆的东西时,我最终会改变它们的“两者”。我有点迷茫,想知道是否有人可以给我一些指示?
【问题讨论】:
-
欢迎来到 SO!没有代码没有人可以猜到修复。请添加minimal reproducible example
-
我的建议是用
std::vector替换它。std::vector是 Rule of Five 细心,所以它会为你处理所有的猴子工作。 -
顺便说一句,您无意中发现了五法则的更简单的兄弟三法则。 Here is an answer to a similar question that you should be able to derive inspiration from
标签: c++ class templates memory clone