C++ 需要帮助可以';我不明白为什么我的头文件函数声明赢了';行不通

C++ 需要帮助可以';我不明白为什么我的头文件函数声明赢了';行不通,c++,C++,我搞不懂密码。如何使PiggyBank&from-myheader与我的cpp文件中的add函数一起工作 给我一个错误: 错误6错误C2040:“PiggyBank::addDimes”:“void(int)”与“PiggyBank&(int)”的间接寻址级别不同h:\cosc1030\homework09\homework09\PiggyBank.cpp 36 1 homework09 #如果不使用清管器# #定义清管器 #包括 使用std::cout; 使用std::endl; 班级储蓄罐

我搞不懂密码。如何使PiggyBank&from-myheader与我的cpp文件中的add函数一起工作

给我一个错误:

错误6错误C2040:“PiggyBank::addDimes”:“void(int)”与“PiggyBank&(int)”的间接寻址级别不同h:\cosc1030\homework09\homework09\PiggyBank.cpp 36 1 homework09

#如果不使用清管器#
#定义清管器
#包括
使用std::cout;
使用std::endl;
班级储蓄罐
{
公众:
储蓄罐(整数便士、整数镍币、整数一角硬币、整数四分之一硬币);
//返回银行中的硬币数量
int getPenniesCount()常量;
int getNickelsunt()常量;
int getDimesont()常量;
int getquartesunt()常量;
//给银行加硬币
储蓄罐和附加便士(INTP);
PiggyBank&addNickels(国际n);
清管器和附加模块(int d);
储液罐和添加区(int q);
//从银行取回硬币,取回号码
整数便士(整数便士);
整数五分镍币(整数n);
取款十美分(取款十美分);
国际货币基金组织(国际货币基金组织);
void displayBalance()常量;
void breakTheBank();//显示余额,然后兑现(所有计数均为零)。
私人:
整数便士;
国际镍币;
一角硬币;
内部宿舍;
};
#恩迪夫
#包括“PiggyBank.h”
小猪银行:小猪银行(整数便士,整数镍币,整数十美分,整数四分之一)
{
加便士(便士);
加五分镍币(五分镍币);
添加一角硬币(一角硬币);
宿舍(宿舍);
}
int PiggyBank::getPenniesCount()常量
{
归还便士;
}
int PiggyBank::getNickelsunt()常量
{
返回五分镍币;
}
int PiggyBank::getDimesont()常量
{
归还一角硬币;
}
int PiggyBank::getquartesunt()常量
{
返回宿舍;
}
空储钱罐::添加便士(整数p)
{
便士=(p>=0)?p:0;
}
无效储液罐::添加镍币(整数n)
{
镍币=(n>=0)?n:0;
}
void PiggyBank::addDimes(int d)
{
一角硬币=(d>=0)?d:0;
}
空储槽::添加季度(整数q)
{
季度=(q>=0)?q:0;
}

带有
PiggyBank和addDimes(int d)的标题已提供,
因此,您需要将实现中的
void
更改为
PiggyBank&

应该返回的对象可能与调用
addDimes
的对象相同,
例如,
this
是指针,因此
返回*this

也许你想知道这有什么用:现在你可以写这样的东西了

functionWhichTakesaPiggyBank(myPiggyBank.addDimes(1)); //one line

myPiggyBank.addDimes(1).addDimes(1).addDimes(1); //chaining

储钱罐和附加存款(int d)
void PiggyBank::addDimes(int d)
有不同的返回类型。那么返回类型应该是什么?这取决于您想要返回什么…..我想将一定数量的特定硬币添加到piggy bank中,然后您需要定义与标头中声明的方式一致的函数。它需要返回对
PiggyBank
的引用。PiggyBank&addQuarters(intq){quarters+=(q>=0)?q:0;return quarters;}@ZachHill您根本不理解这里的注释和答案,是吗?首先,您刚刚在评论中发布的内容应该会给您一个编译器错误。请仔细阅读上面的答案。明白了,谢谢,对不起,我是个白痴。现在它告诉我我没有一个合适的构造函数,哈哈。
functionWhichTakesaPiggyBank(myPiggyBank.addDimes(1)); //one line

myPiggyBank.addDimes(1).addDimes(1).addDimes(1); //chaining