所以我试图从用户获取输入,然后将我的类客户的对象命名为与来自用户的输入相同。当我这样做,我得到了错误使用变量声明对象的名称
"main.cpp: In function ‘void getinfo(String)’: main.cpp:34:13: error: declaration of ‘customer x’ shadows a parameter customer x(firstname, lastname, account, pinnum, balance, accthist);
我需要一种方法来自动定制类的名称,可以由指定变量,它可以被修改或由用户输入。
*****更新****** 我确实想要很简单。这是一个学校项目,目的是由两个或三个人进行,我现在正在独奏。以下是该作业的链接。我将其包括在内,以防有人可能有更好的方式使用我的代码,或者解决我正在解决的问题的更好方法。
void getinfo(string x){
//----------Variable Declarations--------------
string firstname;
string lastname;
string account;
int pinnum;
double balance;
vector <int> accthist;
//----------Get Last Name----------------------------
cout<<"Please enter your last name\n";
cin>>lastname;
//----------Get First Name----------------------------
cout<<"Please enter your first name\n";
cin>>firstname;
//----------Get Account Number----------------------------
cout<<"Please enter your desired account number\n";
cin>>account;
//----------Get Pin Number----------------------------
cout<<"Please enter your desired pin number\n";
cin>>pinnum;
//----------Get First Deposit of $1,000.00--------------
cout<<"Please enter your desired balance\n";
cin>>balance;
//----------create customer----------------------------
customer x(firstname, lastname, account, pinnum, balance, accthist);
}
int main(){
int choice;
cout<<"\t\t Please enter the number corresponding to your selected action.\n\n";
cout<<"1) Open a New Account (Minimum $1,000.00 Deposit)\t"<<"2) Close an Existing Account\n";
cout<<"3) Make a Withdraw ($50.00 -$500.00)\t\t\t"<<"4) Make a Deposit\n";
cout<<"5)Check Account Balance\t\t\t\t\t"<<"6) Bank Statistics Menu\n";
cin>>choice;
if (choice == 1){
string test;
cout<<"Please enter your first name";
cin>>test;
getinfo(test);
}
/*if (choice == 2){
}
if (choice == 3){
}
if (choice == 4){
}
if (choice == 5){
}
if (choice == 6){
}
*/else cout<<"Oops!";
return 0;
}
HEADER FILE- functions.h
#include "std_lib_facilities_4.h"
//---------------------------------------------------------------------
class customer{
private:
string firstn;
string lastn;
string acct;
int pin;
double bal;
vector <int> lastten;
public:
customer(string t1,string t2,string t3, int t4, double t5, vector <int> t6);
void deposit(double n){};
void withdraw (double n){};
double get_bal(){};
};
//---------------------------------------------------------------------
class stats{
double avg_bal(); //average balance
double total_deposits(); //sum of all account balances
int total_cust(); //total number of customers
};
//---------------------------------------------------------------------
class bank{
private:
vector <string> allcust;
public:
void display_cust_account();
bool verify_cust();
void create_new_acct(string temp);
void check_maintenance_fee();
void read_cust_accounts_from_file();
void save_cust_account_to_file();
void make_backup_file();
void print_stats();
};
请填写完整代码。你有两个同名的变量吗? – amchacon 2015-03-02 21:10:11
假设你能够弄清楚如何做到这一点(顺便说一句,你不能),你究竟如何计划在你的代码中引用这个动态变量名?你甚至想象这样的代码可能看起来像什么?它必须通过'x'变量完成。但是,如果你打算使用'x'变量,那么只需将'x'作为变量的静态名称,因为变量名在运行时不可见。 – 2015-03-02 21:14:54
嗯,我想知道是否可以通过使用指针和引用来使用'new'函数来命名对象。如'customer * p = new customer(blah,blah);'或者类似的东西。我会把这个客户放到一个数据库中,我可以通过名字,姓氏和社交标记他们。 – claywd 2015-03-03 16:13:23