weixin_73000861 2022-10-03 17:18 采纳率: 97.9%
浏览 18
已结题

为什么把这四个const删了之后就会报错?

#include "class_second.h"
int main(void)
{
    AccountBank doc("Zhou" , "10086" ,2134);
    
    return 0;
}
//
// Created by 33559 on 2022/10/3.
//

#ifndef CHAPTER_4_CLASS_CLASS_SECOND_H
#define CHAPTER_4_CLASS_CLASS_SECOND_H

#include <iostream>
#include <string>
using namespace std;
class AccountBank{
private:
    string name;
    string account;
    double money;

public:
    AccountBank();
    AccountBank(const string &m_name,
                const string &m_account,
                double num);
    void show()const;
    void deposit(double cash);
    void balance(double cas);
};


#endif //CHAPTER_4_CLASS_CLASS_SECOND_H
//
// Created by 33559 on 2022/10/3.
//
#include "class_second.h"

AccountBank::AccountBank()
{
    name = " ";
    account = " ";
    money = 0.0;
}

AccountBank::AccountBank(const string &m_name,
                         const string &m_account,
                         double num)
{
    name = m_name;
    account = m_account;
    money = num;
}

为什么把

AccountBank::AccountBank(const string &m_name,
                        const string &m_account,
                        double num)

public:
    AccountBank();
    AccountBank(const string &m_name,
                const string &m_account,
                double num);

的const全部删了之后
这里会报错为什么?

  AccountBank doc("Zhou" , "10086" ,2134);
  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-03 17:22
    关注

    因为"Zhou"是常量字符串啊,所以如果函数参数不是常量类型,会报错
    主要原因是你调用时的参数和函数定义的参数类型不一致造成的。
    你写成 string name = "Zhou";string id = "10086",然后AccoutBank doc(name,id,2134);那么函数中就不要加const了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月11日
  • 已采纳回答 10月3日
  • 创建了问题 10月3日