我在一个类中创建对象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行声明)”。
我已经无休止地搜索了这个,我无法弄清楚出了什么问题。我找到了一个通过引用传递对象的例子,但是我得到了这个错误......
答案 0 :(得分:1)
在注释中提供的头文件中,声明Expense
的文件不包含在Category.h中。您至少应该向前声明Expense
(实际上,执行转发声明而不是不必要的包含,以避免使补充变慢)。您可以在class Expense;
之前添加class Category {...
。