gpt4 book ai didi

c++ - 关于调用继承函数

转载 作者:行者123 更新时间:2023-11-28 07:39:58 25 4
gpt4 key购买 nike

我有一个名为 account 的基类。三个类继承自帐户。这些类别是储蓄、支票和信用卡。在我的 main() 中,我试图创建一个切换菜单,以便当用户选择 1 时,它将调用 makeDeposit(),这是帐户的一部分,但通过储蓄来实现。这样,当用户选择 3 时,它会调用 makeDeposit(),但会通过检查来调用。这是我写的代码。我已经声明对象保存 sa;当我调用 makeDeposit 时,我试图将其写为 sa.makeDeposit()。这是代码:

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;
}

这是我的类储蓄:

#include "stdafx.h"
#include "iostream"
#include "Account.h"
#include <string>
#include <sstream>
using namespace std;

class saving: public account
{
public :

double doWithdraw(double amount);
saving();
saving(string itsName, long itsTaxID, double itsBalance);
}

和我的账户类(class):

#include "stdafx.h"
#include <string>
#include <sstream>
using namespace std;
class account {

public :
void setName(string name); void setTaxID(long taxID); void setBalance(double balance);
string getName(); long getTaxID(); double getBalance();
double makeDeposit( double amount );
account();
account(string itsName, long itsTaxID, double itsBalance);
int display();

private :
string itsName;
long itsTaxID;
double itsBalance;

protected :
double last10withdraws[10];
double last10deposits[10];
int numdeposits;
int numwithdraws;

};

知道我做错了什么吗??

最佳答案

您调用的函数不正确。您不需要包括返回值和参数的类型。

case 10: int function(); break;

实际上是在声明一个本地函数 - 如您所料调用function

您的 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 ";
}

关于c++ - 关于调用继承函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16049040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com