User类 新增共有属性Current ID

Posted zuiyankh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了User类 新增共有属性Current ID相关的知识,希望对你有一定的参考价值。

一、题目描述

每个用户有用户编号(id),用户名(name),密码(passwd)三个属性。其中:

  • 用户编号(id)由系统自动顺序编号,用户名和密码都是字母、数字、符合的组合,新用户密码,默认“111111”。
  • User类所有对象有一个共有属性Current ID,用来记录当前已经被使用的最大id号(初始值999)。每当新增一个用户时,CurrentID的值加1,同时将这个值作为新用户的id号。

 

二、解答内容

//user.h

 1 #ifndef HEADER_U
 2 #define HEADER_U
 3 #include<string>
 4 #include<iostream>
 5 using namespace std;
 6 
 7 //User类声明
 8 class User {
 9 public:
10     void setInfo(string name0, string passwd0 = "111111", int id0 = 1);//支持设置用户信息
11     void changePasswd();                               //支持修改密码
12     void printInfo();                                  //支持打印用户信息
13 private:
14     int id;
15     static int CurrentID;
16     string name;
17     string passwd;
18 };
19 int User::CurrentID = 999;                             //静态成员初始化
20 
21 void User::setInfo(string name0, string passwd0, int id0) {
22     id = ++CurrentID;
23     name = name0;
24     passwd = passwd0;
25 }
26 
27 void User::changePasswd() {
28     string passwd1, passwdN;
29     int n = 1;
30     cout << "Enter the old passwd:";
31     cin >> passwd1;
32     while (n <= 3) {
33         if (User::passwd == passwd1) {
34             cout << "Enter the new passwd:";
35             cin >> passwdN;
36             break;
37         }
38         else if (n < 3 && (User::passwd != passwd1)) {
39             cout << "passwd input error,Please re-Enter again:";
40             cin >> passwd1;
41             n++;
42         }
43         else if (n == 3 && (User::passwd != passwd1)) {
44             cout << "Please try after a while." << endl;
45             break;
46         }
47     }
48 }
49 
50 void User::printInfo() {
51     cout << "CurrentID:\t" << CurrentID << endl;
52     cout << "id:\t\t" << id << endl;
53     cout << "name:\t\t" << name << endl;
54     cout << "passwd:\t\t" << "******" << endl;
55 }
56 
57 #endif

//User.cpp

 1 #include<iostream>
 2 #include"user.h"
 3 using namespace std;
 4 
 5 int main() {
 6     cout << "testing 1......" << endl << endl;
 7     User user1;
 8     user1.setInfo("Leonard");
 9     user1.printInfo();
10 
11     cout << endl << "testing 2......" << endl << endl;
12     User user2;
13     user2.setInfo("Jonny", "92197");
14     user2.printInfo();
15 
16     system("pause");
17     return 0;
18 }

 

三、题后小结

 

  1. 静态数据成员声明在类内,初始化在外部。
  2. setInfo函数的参数注意把id放于最后并设置默认参数。

以上是关于User类 新增共有属性Current ID的主要内容,如果未能解决你的问题,请参考以下文章

10类属性实例(对象)属性,多态

如何仅更新 rails 6 中 current_user 的嵌套表单属性?

将current_user id分配给导入学生列表

200 classList 属性

mybatis 新增返回id

laravel5.4PHP5.6+ 调用命名空间下类方法属性和对象