c++ - 尝试通过引用传递对象时出现编译错误

标签 c++ parameters reference

<分区>

每次我尝试编译这个程序时,都会出现以下错误:

    Undefined symbols for architecture x86_64:
  "Character::setTime(int)", referenced from:
      awesome(Character)    in ccmsAc4F.o
  "Character::getMoney()", referenced from:
      _main in ccmsAc4F.o
  "Character::setMoney(double)", referenced from:
      awesome(Character)    in ccmsAc4F.o
  "Character::Character()", referenced from:
      _main in ccmsAc4F.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

字符编译正确,没有错误。问题似乎是试图将对象作为引用传递。以下是我的程序:

#include <cstdlib>
#include "Character.h"
#include <iostream>

using namespace std;

void awesome(Character& character);

int main() {
    Character userCharacter;
    awesome(userCharacter);
    cout << userCharacter.getMoney();
    return 0;
}

void awesome(Character& character)
{
    character.setTime(0);
    character.setMoney(0.00);
}

有没有人知道我做错了什么?最终在一个更大的程序中,我想使用引用来编辑一个已经实例化的对象。我假设引用是正确的方法。任何帮助将不胜感激。

最佳答案

它们是链接器错误。您忘记实现 Character 的方法或将 Character.o 链接到您的项目。

Character::setTime(int) { /* body ?! */ }
Character::getMoney() { /* body ?! */ }
Character::setMoney(double) { /* body ?! */ }
Character::Character() { /* body ?! */ }

关于c++ - 尝试通过引用传递对象时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15196273/

相关文章:

perl - 如何在 Perl 中调用存储在散列中的函数名称?

c++ - 初始化列表中的对象初始化问题

c++ - 使用指针和使用静态对象的单例实现之间的区别

c++ - jGRASP c++ 安装问题找不到-lfeglut

html - 如何添加参数删除链接?

rust - 为什么不能在同一结构中存储值和对该值的引用?

c++ - DebugBreak 不中断

C++ 传递函数的问题(数学不加起来)

c# - Linq Dynamics 在我的参数中添加了一个 N

python - 使用 Python 创建物理系统的交互式动画