无法通过引用传递对象

时间:2013-11-12 19:04:43

标签: c++ pointers reference const

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

Expense exp(expense);

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

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

以下是我在Category类中接收它的方法:

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

以下是我在头文件中定义addNewExpense方法的方法:

void addNewExpense(const Expense &exp);

我无法弄清楚为什么我在这里收到错误:void Category::**addExpense**(const Expense &exp){。它说:“错误:声明与”void ExpenseManager :: Category :: addNewExpense(const&amp; exp)“(在”mycomputerandsonon \ Category.h“第29行声明)”。

不相容

我已经无休止地搜索了这个,我无法弄清楚出了什么问题。我找到了一个通过引用传递对象的例子,但是我得到了这个错误......

1 个答案:

答案 0 :(得分:1)

在注释中提供的头文件中,声明Expense的文件不包含在Category.h中。您至少应该向前声明Expense(实际上,执行转发声明而不是不必要的包含,以避免使补充变慢)。您可以在class Expense;之前添加class Category {...