我正在一个类中创建对象 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/