当前位置: 首页 > 知识库问答 >
问题:

在C++中出现很长的“no match for'operator+'”错误

南宫奇思
2023-03-14

我对C++不太熟悉,正在为我正在修的一门课程写一个“银行”课。每次尝试编译bank.cpp文件时都会出现一个很长的错误。我怀疑我遗漏了一些很明显的东西,但我不知道是什么,因为这个错误对我来说没有任何意义。

#include <iostream>

#include "Bank.h"

Bank::Bank(): savings(0), checking(0) { }

Bank::Bank(double savings_amount, double checking_amount): savings(savings_amount), checking(checking_amount) { }

void Bank::deposit(double amount, string account)
{
        if (account == "S") {
                savings = savings + amount;
        } else {
                checking += amount;
        }
}

void Bank::withdraw(double amount, string account)
{
        if (account == "S") {
                savings -= amount;
        } else {
                checking -= amount;
        }
}

void Bank::transfer(double amount, string account)
{
        if (account == "S") {
                savings -= amount;
                checking += amount;
        } else {
            checking -= amount;
        }
}

void Bank::transfer(double amount, string account)
{
        if (account == "S") {
                savings -= amount;
                checking += amount;
        } else {
                checking -= amount;
                savings += amount;
        }
}

void Bank::print_balances()
{
        cout << "Savings: $ " << savings;
        cout << "Checking: $ " << checking;
}
#ifndef BANK_H
#define BANK_H

#include <string>

#include "Account.h"

using namespace std;

class Bank {
private:
    Account savings;
    Account checking;
public:
    Bank();
    Bank(double savings_amount, double checking_amount);
    void deposit(double amount, string account);
    void withdraw(double amount, string account);
    void transfer(double amount, string account);
    void print_balances();
};

#endif

下面是顶部引用的“account.h”头文件:

#ifndef ACCOUNT_H
#define ACCOUNT_H


class Account {
private:
    double balance;
    double interest_rate;
public:
    Account();
    Account(double amount, double rate);
    void deposit(double);
    bool withdraw(double);
    double query();
    void set_interest_rate(double rate);
    double get_interest_rate();
    void add_interest();
};

#endif

这是我收到的一个神秘的错误:

有人知道我做错了什么吗?我肯定这是很愚蠢的事情。我也可以发布头文件,但由于远程编辑问题,很难做到这一点。

共有1个答案

龚安民
2023-03-14

如果您不想在类中添加额外的运算符,那么与其写:

savings = savings + amount;

使用Account类已经声明的方法并编写:

savings.deposit(amount);
 类似资料:
  • Jenkins中的Git checkout抛出错误“filename too long”并失败,如下所示: hudson.plugins.git.gitException:命令“git.exe checkout-f 2CEA7D8EB9185899C01D2FFC86872F584DA2E60C”返回状态代码1: stdout: stderr:错误:无法创建文件some_long_named_pr

  • 我昨天将android Studio更新到4.1,之后我无法在flutter中运行项目。在flutter医生上,错误显示在下面的屏幕截图中。但是我的flutter和dart插件已经安装好了。有人请帮帮我吗? 颤动医生截图

  • 本文向大家介绍C / C ++中出现分段错误的常见原因列表,包括了C / C ++中出现分段错误的常见原因列表的使用技巧和注意事项,需要的朋友参考一下 分段错误的主要原因是访问未初始化的内存,程序超出范围或试图修改字符串文字。尽管不能保证它们会导致分段错误,但这些可能会导致分段错误。这是分段错误的一些常见原因- 超出范围访问数组 解引用NULL指针 取消引用释放的内存 取消引用未初始化的指针 错误

  • 我正在尝试构建ACE和TAO环境,但遇到了很多错误。 我安装ACE和TAO的过程是: 将文件(ACE+TAO+CIAO-6.1.2.zip)解压缩到文件夹(C:\ACE_WRAPPERS) 在C:\ACE_WRAPPERS\ACE中创建config.h文件 打开config.h文件并键入以下行: #Definenter代码此处ACE_HAS_WINNT4 1 #定义ACE_HAS_STANDARD

  • 本文向大家介绍浅谈C++的浅拷贝出现的错误,包括了浅谈C++的浅拷贝出现的错误的使用技巧和注意事项,需要的朋友参考一下 之前看一些资料提到浅拷贝的问题,即在复制对象时,只是对对象中的数据成员进行简单的赋值,默认拷贝构造函数执行的也是浅拷贝。如果对象中存在动态成员,如指针,那么仅仅做浅拷贝是不够的,并且容易引发错误,最经典的例子: 执行这段代码会出现崩溃,因为析构函数里的delete m_p执行了两

  • 这是我的建筑。格雷德尔: 有谁能帮我解决这个问题吗?