大家好,总的来说,我对 OOP 和 C++ 还很陌生,所以请多多包涵。
我正在尝试定义一个类,它是函数,然后使用它们。我将展示目前的情况以及遇到错误的地方。
在名为“account.h”的文件中我有:
#include <iostream>
#include <string>
using namespace std;
class Account{
string fname;
string lname;
string sinnum;
string accttype;
int numtrans;
double balance;
public:
Account(string,string,string,string);
double DepositAmt(double);
double WithdrawAmt(double);
void PrintStatement();
void getFinalBalance();
};
在名为“account.cpp”的文件中,我有:
Account::Account(string firstname, string lastname, string sinnumber, string acc
{
fname = firstname;
lname = lastname;
sinnum = sinnumber;
accttype = accounttype;
numtrans = 0;
balance = 0;
}
double Account::DepositAmt(double deposit)
{
balance = balance + deposit;
return balance;
}
double Account::WithdrawAmt(double withdraw)
{
balance = balance - withdraw;
return balance;
}
void Account::PrintStatement()
{
cout << "First Name: " << fname << endl;
cout << "Last Name: " << lname << endl;
cout << "SIN: " << sinnum << endl;
cout << "Account Type: " << accttype << endl;
cout << "Total Transactions: " << numtrans << endl;
cout << "Final balance: $" << balance << endl;
}
void Account::getFinalBalance()
{
cout << "Your Final balance is: $" << balance << endl;
}
最后,在我最后一个名为“ass2012.cpp”的文件中,我有:
#include "account.h"
#include "account.cpp"
int main()
{
string fname, lname, sinnum, accttype;
int tempaccttype;
cout << "\nPlease enter your last name: " << endl;
cin >> lname;
cout << "\nPlease enter your SIN number: " << endl;
cin >> sinnum;
cout << "\nPlease choose your account type: "<< endl;
cout << "1: Checking" << endl;
cout << "2: Savings" << endl;
cin >> tempaccttype;
if (tempaccttype == 1)
{
accttype = "Checking";
}
else
{
accttype = "Savings";
}
Account newacc (fname, lname, sinnum, accttype); // HERE IS WHERE I GET THE ERROR
newacc::getFinalStatement();
return 0;
}
你能告诉我我做错了什么吗!!
编辑:谢谢 Naveen!!总是让我感到沮丧的是一些小事。
最佳答案
要在对象上调用方法,您应该使用 .
运算符而不是 ::
运算符,即您应该使用 newacc.getFinalBalance()
(注意该方法名称也有误,我在这里更正了)。
关于c++ - “newacc”不是类或 namespace ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9372110/