Ошибка: переопределение класса после использования защиты заголовка (c ++) - PullRequest
0 голосов
/ 27 апреля 2020

В приведенном ниже коде (для учетной записи. cpp file) я получаю сообщение об ошибке Переопределение «numberAccounts» и Переопределение «Account», et c для всех членов класса. Я не могу найти проблему.

//Account.h

#ifndef Account_h
#define Account_h

#include "Date.cpp"

struct Transaction
{
    Date date;
    int transactionType; // 0, 1, 2 for account creation,
                         // deposit and withdrawal respectively
    double amount;
};


class Account{
private:
    int accountNumber;
    string ownerName;
protected:
    double balance;
    static int numberAccounts;
    Transaction transactionHistory;
    int numberTransactions;
public:
    Account(string ownerName_, double balance_, Date date_);
    virtual bool withdraw(double amount, Date date_);
    bool deposit(double amount, Date date_);
    int getAccountNumber() const ;
    double getBalance() const ;
    static int getNumberAccounts();
    virtual void print() const;

};

#endif /* Account_h */
//Account.cpp
#include <iostream>
#include "Account.h"

using namespace std;

const int numberAccounts = 1000;

Account::Account(string ownerName_, double balance_, Date date_){
    ownerName = ownerName_;
    balance = balance_;
    accountNumber = (numberAccounts+1000);
    numberAccounts++;
}

bool Account::withdraw(double amount, Date date_){
    if(balance >= amount){
        balance -= amount;
        return true;
    }else{
        return false;
    }
}
bool Account::deposit(double amount, Date date_){
    if(amount > 0){
        balance += amount;
        return true;
    }else{
        return false;
    }
}

int Account::getAccountNumber() const {
    return accountNumber;
}

double Account::getBalance() const {
    return balance;
}

int Account::getNumberAccounts(){
    return numberAccounts;
}

void Account::print() const{
    cout << "#: " << accountNumber << ", Name:" << ownerName << ", Balance: "
    << balance << " Galactic units" << endl;
}

После каждого определения в файле Account. cpp возникает ошибка, называемая переопределением ____. Как это исправить? Я уже поместил ifndef / define / endif в заголовочный файл.

...