c++ - C++ 中的克隆函数

标签 c++ constructor copy clone

<分区>

我正在尝试在我的 .cpp 文件中的 .h 文件中实现一个虚函数。这是一个任务,所以我不能只使函数非虚拟。这是一个克隆函数,它调用类的复制构造函数。函数:

virtual Item* clone() const;

在类

Ingredient : public Item {

当我在我的 Ingredient.cpp 文件中实现它时,我有:

Ingredient::clone () const {
    return new Ingredient ( *this );
} 

但是当我尝试编译时,我得到了这两个错误:

Ingredient.cpp:23:13: 错误:C++ 需要所有声明的类型说明符

Ingredient::clone () const {
        ^

Ingredient.cpp:24:9: 错误:无法使用“Ingredient *”类型的右值初始化“int”类型的返回对象

    return new Ingredient ( *this );
           ^~~~~~~~~~~~~~~~~~~~~~~~

产生了 2 个错误。

我不明白我在这里做错了什么,因为我应该使用取消引用的 *this self 指针。有什么建议吗?

最佳答案

您忘记了函数实现中的返回类型。

Item* Ingredient::clone () const {
// ^^ Missing

关于c++ - C++ 中的克隆函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33591562/

相关文章:

c++ - 链接错误 LNK1120 和 LNK2019 - "unresolved external symbol _main"

c++ - 串行编程 RS485

c++ - 在基类c++中使用带有变量的类中的构造函数

ios - 仅对 UITextField 禁用编辑?

C++ std::pair, std::vector 和 memcpy

c++ - 如何修复 BST 删除功能中的边缘案例?

Java:从 super 构造函数捕获异常

TypeScript - 将整个对象传递给构造函数

C++ 提取 istream 的内容并复制到另一个

c# - 关于 C# 中的文件权限