gpt4 book ai didi

c++ - 使用变量声明对象的名称

转载 作者:行者123 更新时间:2023-11-28 06:24:05 27 4
gpt4 key购买 nike

所以我试图从用户那里获取输入,然后将我的类客户的对象命名为与用户输入相同的名称。当我这样做时,我得到了错误

"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);

我需要一种方法来自动自定义类的名称,通过可以修改的分配变量或用户输入。

***** 更新******我确实想直截了当。这是一个学校项目,打算由两三个人来完成,而我现在正在独自完成。下面是作业的链接。我将其包括在内,以防有人可能有更好的方法来使用我的代码,或者有更好的方法来解决我正在努力解决的问题。

assignemnt

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;
}

头文件- 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();
};

最佳答案

"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);

无论你想用这段代码实现什么(我严重怀疑它在修复那个简单的错误后是否有意义),错误消息说的很明显:

customer x(firstname, lastname, account, pinnum, balance, accthist);
// ^

上面一行中的变量名 x 与用于函数参数的变量名相同

void getinfo(string x){
// ^

这就是阴影在这种情况下的实际含义。


因此,要解决此问题,您可以为其中任何一个选择不同的名称,例如

customer y(firstname, lastname, account, pinnum, balance, accthist);
// ^

void getinfo(string y){
// ^

关于c++ - 使用变量声明对象的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28819451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com