hello203 2022-04-28 20:42 采纳率: 73.3%
浏览 713
已结题

表达式必须具有类类型

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<iostream>
using namespace std;
class Account
{
public:
    Account(char name[], long num, float amount);    //类的有参构造函数
    Account();                        //类的无参构造函数
    void deposit(float amount);     //往账户中存款
    int withdraw(float amount);     //从账户中取款(考虑透支情况)
    float getBalance();              //查询余额
private:
    char mName[20];                  //银行账户的户名
    long mSN;                         //本账户的帐号
    float mBalance;                   //本账户当前的余额
};
Account::Account(char name[], long num, float amount) {
    for (int i = 0; i < 20; i++) {
        name[i] = mName[i];
    }
    mSN = num;
    amount = mBalance;
}
void Account::deposit(float amount) {
    mBalance = mBalance + amount;
}
int Account::withdraw(float amount) {
    if (amount > mBalance) {
        cout << "您的余额不足" << endl;
        return 0;
    }
    else {
        mBalance = mBalance - amount;
    }
    return mBalance;
}
float Account::getBalance() {
    return mBalance;
}
void main() {
    int a;
    char name1[10]; long num1;
    float amount1 = 0;
    cout << "--------------------注册界面--------------------" << endl;
    cout << "用户名:" << endl;
    for (int i = 0; i < 10; i++) {
        cin >> name1[i];
    }
    cout << "账号:";
    cin >> num1;
    Account user1(char name1, long num1, float amount1);
    for (;;) {
        cout << "--------------------操作界面--------------------" << endl;
        cout << "1:存款;" << endl;
        cout << "2.取款;" << endl;
        cout << "3.查询余额" << endl;
        cout << "4.退出" << endl;
        cout << "------------------------------------------------" << endl;
        cin>>a;
        switch (a) {
        case(1):
            cout << "请输入您要存的金额" << endl;
            cin >> amount1;
            user1.deposit(amount1);
            system("pause");
            system("cls");
            continue;
        case(2):
            cout << "请输入你要取的金额" << endl;
            cin >> amount1;
            user1.withdraw(amount1);
            system("pause");
            system("cls");
            continue;
        case(3):
            user1.getBalance;
            system("pause");
            system("cls");
            continue;
        case(4):
            system("cls");
            break;
        }
    }
}

运行结果及报错内容

调用类里的函数时出现:表达式必须具有类类型,但它以及具有(。。)

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • zhu_zhu__99 2022-04-29 10:13
    关注
    #include<iostream>
    using namespace std;
    class Account
    {
    public:
        Account(char name[], long num, float amount);    //类的有参构造函数
        Account();                        //类的无参构造函数
        void deposit(float amount);     //往账户中存款
        int withdraw(float amount);     //从账户中取款(考虑透支情况)
        float getBalance();              //查询余额
    private:
        char mName[20];                  //银行账户的户名
        long mSN;                         //本账户的帐号
        float mBalance;                   //本账户当前的余额
    };
    Account::Account(char name[], long num, float amount) {
        for (int i = 0; i < 20; i++) {
            name[i] = mName[i];
        }
        mSN = num;
        amount = mBalance;
    }
    void Account::deposit(float amount) {
        mBalance = mBalance + amount;
    }
    int Account::withdraw(float amount) {
        if (amount > mBalance) {
            cout << "您的余额不足" << endl;
            return 0;
        }
        else {
            mBalance = mBalance - amount;
        }
        return mBalance;
    }
    float Account::getBalance() {
        return mBalance;
    }
    int main() {
        int a;
        char name1[10]; long num1;
        float amount1 = 0;
        cout << "--------------------注册界面--------------------" << endl;
        cout << "用户名:" << endl;
        for (int i = 0; i < 10; i++) {
            cin >> name1[i];
        }
        cout << "账号:";
        cin >> num1;
        Account user1(name1, num1, amount1);
        for (;;) {
            cout << "--------------------操作界面--------------------" << endl;
            cout << "1:存款;" << endl;
            cout << "2.取款;" << endl;
            cout << "3.查询余额" << endl;
            cout << "4.退出" << endl;
            cout << "------------------------------------------------" << endl;
            cin>>a;
            switch (a) {
            case(1):
                cout << "请输入您要存的金额" << endl;
                cin >> amount1;
                user1.deposit(amount1);
                system("pause");
                system("cls");
                continue;
            case(2):
                cout << "请输入你要取的金额" << endl;
                cin >> amount1;
                user1.withdraw(amount1);
                system("pause");
                system("cls");
                continue;
            case(3):
                user1.getBalance();
                system("pause");
                system("cls");
                continue;
            case(4):
                system("cls");
                break;
            }
        }
        return 0;
    }
    

    修改行数为50,75行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月17日
  • 已采纳回答 7月9日
  • 请详细说明问题背景 4月28日
  • 创建了问题 4月28日

悬赏问题

  • ¥20 请用MATLAB画含有二重积分和累加求和的随时间t变化的函数图像,不知如何把二重积分加到循环里,请解答一下
  • ¥15 kali终端update时出现这样的情况
  • ¥15 matlab调用stl文件时报错说内存不足
  • ¥20 医学图像格式、医学图像后处理
  • ¥15 MATLAB中的矩阵分离问题
  • ¥15 服务端可运行语言,解析unity文件
  • ¥15 英飞凌TC387使用MCAL唤醒TJA1145问题
  • ¥15 android tv图标显示异常
  • ¥20 (标签-AR|关键词-预测分析)
  • ¥15 QT IFW 自定义界面添加lineedit小键盘输入数字无效果