错误:'。'之前的预期primary-expression代币

时间:2013-04-11 20:47:24

标签: c++

好的,所以我在学习这个C ++程序时遇到了麻烦,我应该为学校做一些错误。我有基础但我需要有关类和对象的帮助。

#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;

class BankAccount {
private:
    double accountBalance;
    string name;        
public:
    BankAccount();
    BankAccount(string,double);
    double deposit(double);
    double withdraw(double);
    void checkBalance();                    
};

BankAccount::BankAccount()
{
    accountBalance=0;
    name="";
}

BankAccount::BankAccount(string name,double money)
{
    name=name;
    accountBalance=accountBalance;                                
}

double BankAccount::deposit(double money)
{
    accountBalance+=money;
    return accountBalance;
}

double BankAccount::withdraw(double money)
{
    accountBalance-=money;
    return accountBalance;
};            

void BankAccount::checkBalance()
{
    cout<<"The balance on the account is $"<<accountBalance<<"!!"<<endl;     
};                                                                                                             
int main(int argc, char *argv[])
{
    int c;
    double m;
    string n;
    cout<<"==================Bank======="<<endl;
    cout<<"[1] Open a new Bank Account |"<<endl;
    cout<<"[2] Deposit money           |"<<endl;
    cout<<"[3] Withdraw money          |"<<endl;
    cout<<"[4] Check balance           |"<<endl;
    cout<<"============================="<<endl;
    cout<<endl;
    cout<<"What would you like to do :";
    cin>>c;

    switch (c){
    case 1:
        cout<<"Ok I see you want to open a new Bank Account"<<endl;
        cout<<"But first answer a few questions:"<<endl;
        cout<<"What is your name? ";
        cin>>n;
        cout<<"Next tell me the amount of money you wish to open your account with: ";
        cin>>m;
        BankAccount::BankAccount(n,m);
        cout<<"OK all set, "<<n<<"!!"<<endl;
        break;
    case 2:
        cout<<"How much money would you like to deposit? : ";
        cin>>m;
        BankAccount.deposit(m);
        break;
    case 3:
        cout<<"How much money would you like to withdraw? : ";
        cin>>m;
        BankAccount.withdraw(m);
        break;
    case 4:
        cout<<"OK I'll check your balance"<<endl;
        BankAccount.checkBalance();               
        break;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}

所以,如果你能帮助我,我将非常感激。

2 个答案:

答案 0 :(得分:3)

BankAccount是类型名称,而不是变量名称。您无法在类型上调用实例方法。

创建类型为BankAccount的变量,为其分配一个实例,然后使用您已有的相同表示法调用实例上的方法:

BankAccount acct;
switch (c){
case 1:
     cout<<"Ok I see you want to open a new Bank Account"<<endl;
     cout<<"But first answer a few questions:"<<endl;
     cout<<"What is your name? ";
     cin>>n;
     cout<<"Next tell me the amount of money you wish to open your account with: ";
     cin>>m;
     acct = BankAccount(n,m);
     cout<<"OK all set, "<<n<<"!!"<<endl;
     break;
case 2:
     cout<<"How much money would you like to deposit? : ";
     cin>>m;
     acct.deposit(m);
     break;
case 3:
     cout<<"How much money would you like to withdraw? : ";
     cin>>m;
     acct.withdraw(m);
     break;
case 4:
     cout<<"OK I'll check your balance"<<endl;
     acct.checkBalance();               
     break;
}

答案 1 :(得分:0)

BankAccount是您定义的类,您不能使用::运算符来访问该类的non-static成员。在这种情况下,您需要首先创建BankAccount的对象,然后使用dot operator访问deposit和其他成员函数,因为这些non-static成员函数与实例关联该课程。

如果deposit和其他相关功能是static成员函数,则可以执行此操作。