Error : after I tried to run my project
Elaboration: Was trying to learn Inheritance ,by deriving a "Savings Account" class from the parent class => "Account" class. But now I am stuck. Error: non-standard syntax; use '&' to create a pointer to member
main.cpp
#include <iostream>
#include <string>
#include "Account.h"
#include "Savings_Account.h"
using namespace std;
int main() {
cout << "\nAccount=======================" << endl;
Account acc{};
acc.deposit(2000.0);
acc.withdraw(500.0);
cout << endl;
Account* p_acc{ nullptr };
p_acc = new Account();
p_acc->deposit(1000.0);
p_acc->withdraw(500.0);
delete p_acc;
cout << "\nSavings_Account===============" << endl;
Savings_Account sav_acc{};
sav_acc.deposit(2000.0);
sav_acc.withdraw(500.0);
cout << endl;
Savings_Account* p_sav_acc{ nullptr };
p_sav_acc = new Savings_Account();
p_sav_acc->deposit(1000);
p_sav_acc->withdraw(500.0);
delete p_sav_acc;
return 0;
}
Account.h
#ifndef _ACCOUNT_H_
#define _ACCOUNT_H_
#include <iostream>
#include <string>
using namespace std;
class Account {
public:
double balance;
string name;
void deposit(double amount);
void withdraw(double amount);
Account();
~Account();
};
#endif
Account.cpp
#define _CRT_SECURE_NO_WANINGS
#include "Account.h"
Account::Account()
: balance{ 0 }, name{ "NULL" }{
}
Account::~Account() {
}
void Account::deposit(double amount) {
cout << "Account deposit was " << amount << endl;
}
void Account::withdraw(double amount) {
cout << "Account withdraw was " << amount << endl;
}
Savings_Account.h
#ifndef _SAVINGS_ACCOUNT_H_
#define _SAVINGS_ACCOUNT_H_
#include <iostream>
#include <string>
#include "Account.h"
class Savings_Account : public Account {
public:
double interest_rate;
Savings_Account();
~Savings_Account();
void deposit(double amount);
void withdraw(double amount);
};
#endif
Savings_Account.cpp
#define _CRT_SECURE_NO_WANINGS
#include "Savings_Account.h"
Savings_Account::Savings_Account()
:interest_rate{ 3.0 } {
}
Savings_Account::~Savings_Account() {
}
void Savings_Account::deposit(double amount) {
cout << "Savings Account deposited " << deposit << endl;
}
void Savings_Account::withdraw(double amount) {
cout << "Savings Account withdraw " << withdraw << endl;
}
Note : Using Visual Studio-2022 IDE.
Aucun commentaire:
Enregistrer un commentaire