c++ - 无法通过引用传递对象

标签 c++ pointers reference constants

我正在一个类中创建对象 Expense:

Expense exp(expense);

然后将其传递给另一个类(Category)作为引用:

vector<Category> *ptrCateg = &(impl->categories);
ptrCateg->at(pos).addNewExpense(exp);

这是我在类别类中收到它的方式:

void Category::addNewExpense(const Expense &exp){
   }

下面是我如何在头文件中定义 addNewExpense 方法:

void addNewExpense(const Expense &exp);

我无法弄清楚为什么会在此处出现错误:void Category::**addExpense**(const Expense &exp){。它说:“错误:声明与“void ExpenseManager::Category::addNewExpense(const &exp)”不兼容(在“mycomputerandsonon\Category.h”的第 29 行声明)。

我在谷歌上没完没了地搜索这个,但我不知道哪里出了问题。我找到了一个通过引用传递对象的例子,但我得到了这个错误...

最佳答案

在注释中提供的头文件中,声明Expense的文件没有包含在Category.h中。您至少应该前向声明 Expense(实际上,前向声明而不是不必要的包含以避免使编译变慢)。您可以通过在 class Category {... 之前添加 class Expense; 来实现。

关于c++ - 无法通过引用传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937757/

相关文章:

通过指针和地址复制对象

c - 如何使用c中的指针计算矩阵的行列式?

c++ - 在运行时区分指针和引用 ANSI C++

c++ - 将 double* 存储在 long (C++) 中

c++ - 是否有用于 SDL 的 C++ 包装器/绑定(bind)?

c++ - 为什么 vector 中的所有指针都指向同一元素?

c - realloc() 与旧大小的问题

c++ - 开放式简历中的图像格式

c++ - 通过引用传递参数与使用实例变量

wpf - 关于 WPF 自定义控件的最佳引用资料是什么