设计一个基类Person,三个私有成员变量包括Name(姓名),Age(年龄)等成员变量,构造函数包括缺省构造函数和二参数构造函数,缺省构造函数下将Name设为“XXX”,Age设为18,二参数构造函数按照实际的值对成员变量初始化,show_person()函数用来显示Name(姓名),Age(年龄)的内容。
设计一个用户类User,由Person基类公有继承而来,新增的成员变量包括Address(用户地址),MobilePhone(手机号码),ID(身份证号码),使用5参数构造函数进行成员变量初始化,在构造函数内对手机号码和身份证号码进行位数检查,手机号码有效位数为11位,身份证号码有效位数为18位。其他成员函数包括有:PhoneOperator()(求出并显示手机通信运营商),show_user()(显示用户的全部信息,包括姓名、年龄、地址、手机号码、身份证号码、手机通信运营商信息),手机通信运营商计算规则按照手机号码的前三位判定:139和138号段为移动公司,130和131号段为联通公司,189和188号段设为电信公司,其他号段显示为暂时未知。
在主函数中,声明3-8个用户类对象,针对不同手机运营商情况进行测试。
#include<iostream>
#include<cstring>
using namespace std;
class Person{
string Name;
int Age;
public:
Person():Name("XXX"),Age(18){
};
Person(string name,int age):Name(name),Age(age){
};
void show_person(){
cout<<"姓名:"<<Name<<endl;
cout<<&#