-5

我正在使用以下代码,我在以下函数中创建的对象不会调用我在主函数中创建的值

void LoginScreen(){

UserInfo addUser[100];

string EUN, EP;
system("cls");
cout<<"Enter Username : ";
cin>>EUN;
cout<<endl;
//cout<<"Enter Password : ";
//cin>>EP


for( int a = 0; a < 100; a++){
    if (EUN == addUser[a].getUN()){
        system("cls");
        cout<<"OMG HELP MEEE ";
        //break;
    }
}

}

我的用户信息.cpp

 void UserInfo::setUN(string un){

    UserName = un;
}


string UserInfo::getUN(){

    return UserName;
}

我的主要

    void main()
{



    string tFname, tLname, tNumber;
    string tUN, tP;



    UserInfo addUser[100];



    cout<<"Enter Username : ";
    getline(cin,tUN);
    addUser[0].setUN(tUN);


    cout<<"Press 1 for tails"<<endl;
    cout<<"Press 2 for Login"<<endl;
    cout<<"Enter Your Choice";
    cin>>main_menu;

    switch (main_menu){
    case 1:
        break;
    case 2:
        LoginScreen();
        break;

    default:
        break;

    }

    getch();



}

我不确定为什么它没有在 loginScreen 中给出值,但是当我尝试在我的 main 中打印值时它工作正常。

4

2 回答 2

0

自己看:

void LoginScreen(){

//you still want to use addUser from main, so what is this ?
UserInfo addUser[100];             -----------+
 ...                                          |
}                                             |
                                              |
void main()                                   |
{                                             |
                                              |
    UserInfo addUser[100];        ------------+
...
}

你可以这样做:

void LoginScreen(UserInfo addUser[] ){ ... }

显然你也需要UserInfo addUser[100];删除LoginScreen

然后从main

LoginScreen(addUser) ;

此外,void main不是合法的 c++ 使用int main

于 2013-09-22T15:00:08.083 回答
0

您必须将用户列表(或此处的数组)保存为 loginscreen 的成员。

除了风格:调用函数时更喜欢const string &(setUN)和getter应该在const这里

于 2013-09-22T14:40:42.207 回答