设计一个User类,数据成员有pUserName和pPassWord两个指向字符的指针,采用动态内存分配方式存储用户名和口令;编写GetUser( )、GetPass( )两个成员函数,用于获取用户名和口令;其余成员函数按需要编写。在main( )中定义一个User类的对象数组ua,元素个数为4;当用户输入一个用户名后,在ua中查找,找到后输出对应的口令,找不到时输出相应的提示信息。
#include <iostream>
#include <string>
using namespace std;
class User
{
private:
char* pUserName;
char* pPassWord;
public:
User(){pUserName=0;pPassWord=0;}
User(char* u,char* p)
{
pUserName = new char[strlen(u)+1];
memcpy(pUserName,u,strlen(u));
pUserName[strlen(u)] = 0;
pPassWord = new char[strlen(p)+1];
memcpy(pPassWord,p,strlen(p));
pPassWord[strlen(p)]=0;
//cout << pUserName << " " << pPassWord<<endl;
}
~User()
{
if(pUserName){delete[] pUserName;pUserName=0;}
if(pPassWord){delete[] pPassWord;pPassWord=0;}
//cout << "relesase"<<endl;
}
char* GetUser() {return pUserName; }
char* GetPass(){return pPassWord;}
};
int main()
{
User ua[4] = {User("zhangsan","123"),User("lisi","234"),User("wangwu","456"),User("ligang","789")};
char buf[10];
int i;
cout << "请输入用户名:";
cin >> buf;
for (i = 0;i<4;i++)
{
if(strcmp(buf,ua[i].GetUser())==0)
{
cout << ua[i].GetPass()<<endl;
break;
}
}
if(i==4)
cout << "not find"<<endl;
return 0;
}
c++ 直接用string 作为成员变量,如果你用char* ,那么必然要实现copy construct 和operator=()太麻烦