C++ 关于调用继承函数
我有一个叫做account的基类。三个类从account继承。这些课程包括储蓄、支票和信用卡。在我的main()中,我试图创建一个切换菜单,这样当用户选择1时,它将调用makeDeposit(),这是帐户的一部分,但通过储蓄来实现。这样,当用户选择3时,它将调用makeDeposit(),但通过检查来实现。这是我写的代码。我已声明对象保存sa;当我调用makeDeposit时,我试图将其写为sa.makeDeposit()。代码如下:C++ 关于调用继承函数,c++,class,inheritance,methods,C++,Class,Inheritance,Methods,我有一个叫做account的基类。三个类从account继承。这些课程包括储蓄、支票和信用卡。在我的main()中,我试图创建一个切换菜单,这样当用户选择1时,它将调用makeDeposit(),这是帐户的一部分,但通过储蓄来实现。这样,当用户选择3时,它将调用makeDeposit(),但通过检查来实现。这是我写的代码。我已声明对象保存sa;当我调用makeDeposit时,我试图将其写为sa.makeDeposit()。代码如下: int main () { saving sa;
int main ()
{
saving sa;
creditCard cca;
checking ca;
string n;
int option;
int exit = 1;
cout << endl;
cout << "Checking Balance:" << " " << " " << "Savings balance:" << " " << " " << "Credit Card balance:" << " " << endl;
cout << endl;
cout << " (1) Savings Deposit " << endl;
cout << " (2) Savings withdrawel " << endl;
cout << " (3) Checking Deposit " << endl;
cout << " (4) Write A Check " << endl;
cout << " (5) Credit Card Payment " << endl;
cout << " (6) Make A Charge " << endl;
cout << " (7) Display Savings " << endl;
cout << " (8) Display Checkings " << endl;
cout << " (9) Display Credit Card " << endl;
cout << " (0) Exit " << endl;
cin >> option;
do{
switch ( option )
{
case 1 : double amtD;
cout << " Please enter how much you would like to deposit into savings " << endl;
cin >> amtD;
double sa.makeDeposit(double amtD);
break;
case 2 : double makeWithdrawel();
break;
case 3 : double makeDeposit();
break;
case 4 :
break;
case 5 :
break;
case 6 : double makeWithdrawel();
break;
case 7 : int display();
break;
case 8 : int display();
break;
case 9 : int display();
break;
case 0 : exit = 0;
break;
default : exit = 0;
cout << " ERROR ";
}
}
while(exit==1);
return 0;
}
int main()
{
拯救sa;
信用卡;
检查ca;
字符串n;
int选项;
int exit=1;
cout您错误地调用了函数。您不需要包含返回值和参数的类型
case 10: int function(); break;
实际上是声明一个本地函数-而不是像您期望的那样调用函数
您的switch语句应该如下所示。请注意对函数的调用中缺少类型
switch ( option )
{
case 1 : double amtD;
cout << " Please enter how much you would like to deposit into savings " << endl;
cin >> amtD;
sa.makeDeposit(amtD);
break;
case 2 : makeWithdrawel();
break;
case 3 : makeDeposit();
break;
case 4 :
break;
case 5 :
break;
case 6 : makeWithdrawel();
break;
case 7 : display();
break;
case 8 : display();
break;
case 9 : display();
break;
case 0 : exit = 0;
break;
default : exit = 0;
cout << " ERROR ";
}
开关(选件)
{
案例1:双重amtD;
cout-amtD;
股份有限公司(amtD);
打破
案例2:makeReturnel();
打破
案例3:makeDeposit();
打破
案例4:
打破
案例5:
打破
案例6:makeReturnel();
打破
案例7:显示();
打破
案例8:显示();
打破
案例9:显示();
打破
案例0:退出=0;
打破
默认值:exit=0;
cout下面的代码看起来有点奇怪
cin >> amtD;
double sa.makeDeposit(double amtD);
break;
您正试图使用double关键字声明一个变量,但我认为您需要做以下两件事之一:
只需在不使用makeDeposit()返回的double的情况下进行存款。在这种情况下,只需这样写一行(使用返回的double是可选的):
股份有限公司(amtD)
您希望进行存款,但也要保存一些退货信息。然后您可能会执行类似的操作(并在以后使用新变量)
double justMadeDeposit=sa.makeDeposit(amtD)
这是一些猜测。也许您根本不希望makeDeposit()函数返回任何内容,然后您可以将其声明为void。您遇到的具体问题是什么/您没有得到预期输出的示例输入(以及您实际得到的结果)“事实上,这根本无法编译。@CaptainObvlious:哦,现在我明白你的意思了。我会解决它的。谢谢你,显然船长。工作得很好。”。
switch ( option )
{
case 1 : double amtD;
cout << " Please enter how much you would like to deposit into savings " << endl;
cin >> amtD;
sa.makeDeposit(amtD);
break;
case 2 : makeWithdrawel();
break;
case 3 : makeDeposit();
break;
case 4 :
break;
case 5 :
break;
case 6 : makeWithdrawel();
break;
case 7 : display();
break;
case 8 : display();
break;
case 9 : display();
break;
case 0 : exit = 0;
break;
default : exit = 0;
cout << " ERROR ";
}
cin >> amtD;
double sa.makeDeposit(double amtD);
break;