I am writing a program for bank and I m getting this error when I compile it. This is my entire code as i was not able to share more code here it is on paste bin. My code
I am not including my whole code but the part I think is responsible:
#include<iostream>
#include<string>
#include<limits>
#include<fstream>
#include<iomanip>
using std::ios_base;
using std::ostringstream;
using std::ios;
using std::fstream;
using std::ifstream;
using std::ofstream;
using std::stoi;
using std::to_string;
using std::string;
using std::cout;
using std::cin;
using std::endl;
using std::getline;
class yourbankaccount
{
private:
string accountNumber;
// Name of the customer.
string name;
// Date of birth
int day;
int month;
int year;
// Get Age
int age;
// Get Gender
string gender;
long accountBalance = 0;
public:
friend int getInt(string info, int length);
friend string getStr(string info, int length);
yourbankaccount(){}
void setAccountNumber(string number){
accountNumber = number;
}
string shareAccountNumber(){
return accountNumber;
}
// Get date
void getDate(){
int d, m, y;
cout << "Now please enter your Date Of Birth(DD/MM/YYYY):"<<endl;
d = getInt("Day(DD)", 2);
m = getInt("Month(MM)", 2);
y = getInt("Year(YYYY)", 4);
day = d; month = m; year = y;
}
// Return Date
string sendDate(){
string Date = to_string(day) + "/" + to_string(month) + "/" + to_string(year);
return Date;
}
// Method to add details.
void getCustomerDetails(){
bool gotGen = false;
string n; int a; unsigned int p; char g;
cout << "Please fill in the following details: ";
name = getStr("Name of Account holder", 45);
cout << "Enter your birthday in given format: ";
getDate();
age = getInt("your Age", 2);
do
{
gender = getStr("your Gender(only M for Male, F for Female, O for Other)", 1);
if (stringToUpper(gender) != "M" ||
stringToUpper(gender) != "F" ||
stringToUpper(gender) != "O"){
"Please enter only M or F or O!";
}else{
gotGen = true;
}
} while (gotGen);
}
string shareName(){
return name;
}
string shareDOB(){
return sendDate();
}
int shareAge(){
return age;
}
string shareGender(){
return gender;
}
void setAccountBalance(long bal){
accountBalance = bal;
}
long shareAccountBalance(){
return accountBalance;
}
~yourbankaccount(){}
};
and I am declaring the object here:
void createAccount(){
ofstream addAccount;
yourbankaccount Account;
cout << "Thank You for Choosing Your Bank.";
cout << "Please provide The folling details.";
Account.setAccountNumber(calNewAccNumber());
Account.getCustomerDetails();
Account.setAccountBalance(500);
int pin = getInt("a pin for the account", 4);
string file ="accounts/open.csv";
addAccount.open(file, ios::out | ios::app);
if (addAccount.is_open())
{
addAccount << Account.shareAccountNumber()
<< "," << pin << "," << "\"" << Account.shareName() << "\"" << ","
<< Account.shareDOB() <<"," << Account.shareAge()
<< "," << Account.shareGender() << Account.shareAccountBalance()<<"\n";
}
cout << "Your Account has been created Sucessfully." <<
"Please note your number as it will be required for logging in\n";
cout << "Account number is:" << Account.shareAccountNumber() << "\n";
}
I get this error when I compile it:
> Executing task: C/C++: g++.exe build active file ver(1) <
Starting build...
D:\Programs\mingw_w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\g++.exe -g D:\BSC_IT\sem_2\OOPS\CA2\YourBank\yourbank.cpp -o
D:\BSC_IT\sem_2\OOPS\CA2\YourBank\yourbank.exe
```
D:\BSC_IT\sem_2\OOPS\CA2\YourBank\yourbank.cpp: In function 'void createAccount()':
D:\BSC_IT\sem_2\OOPS\CA2\YourBank\yourbank.cpp:139:21: error: aggregate 'yourbankaccount Account' has incomplete type and cannot be defined
yourbankaccount Account;
^~~~~~~
```
Build finished with error(s).
The terminal process terminated with exit code: -1.
>Terminal will be reused by tasks, press any key to close it.
Your class type is incomplete. You need to define your class before you can declare an object of that class. It is not enough to forward declare the class.