类的继承,综合输出学生信息并析构

代码怎样实现用出生日期算年龄并和其他信息一起输出呢,以及析构函数和Number属性呢
【问题描述】 请问

  1. 定义一个Person类,该类具有数数据成员_Name, _Gender, _Age,属性Name, Gender,虚方法GetAge() 直接返回_Age。

定义一个Student类,继承Person类,该类具有数据成员_No, _Score, _Birthday, _Number及属性No, Score,重写GetAge(),由出生日期计算而来,Number属性以计算存在于系统中学生的人数,每创建一个学生对象,学生人数加1, 每析构一个对象,学生人数减1。另外该类还具有一个Print方法,要求按“Number:No,Name, Gender,Age,Score”格式输出。

  1. 完成Program类的Main()方法。
    创建多个学生对象,按要求输出学生信息。
 internal class Program
    {
        static void Main(string[] args)
        {
            DateTime date1 = new DateTime(2001, 8, 9);
            Student s1 = new Student(1,0106101,"zhangsan","gentle",19,90.88);
            s1.print();
            Console.ReadKey();
        }
    }
    class Person
    {
        /// 
        /// 字段 基本信息
        /// 
        private string _Name;
        private string _Gender;
        public  int _Age;
        /// 
        /// 属性 名字 性别
        /// 
        public string Name
        {
            get
            {
                return _Name;
            }
            set
            {
                _Name = value;
            }
        }
        public string Gender
        {
            get
            {
                return _Gender;
            }
            set
            {
                _Gender = value;
            }
        }        
        public virtual int GetAge()//虚方法
        {
            return _Age;
        }
    }
    class Student: Person
    {
        /// 
        /// 字段
        /// 
        private int _No;
        private double _Score;
        private DateTime _BirthDate;
        private int _Number=0;

        public Student (int Number,int No,string Name,string Gender,int BirthDate, double Score)
        {
            _Number = Number;
            _No = No;          
        }
        /// 
        /// 属性
        /// 
        public int No
        {
            get
            {
                return _No;
            }
            set
            {
                _No=value;
            }
        }
        public double Score
        {
            get
            {
                return _Score;
            }
            set
            {
                _Score=value;   
            }
        }
        public int Number//待修改
        {
            get
            {
                return _Number ++;
            }
            set
            {
                _Number =value;
            }
        }
        public override int GetAge()
        {
            DateTime now = DateTime.Now;
            int age = now.Year - _BirthDate.Year;
            if (now.Month < _BirthDate.Month || (now.Month == _BirthDate.Month && now.Day < _BirthDate.Day))
            {
                age--;
            }
            _Age = age;
            return  _Age;
        }
      public void print()//Number:No,
        {
            Console.WriteLine("{0}:, {1}, {2}, {3}, {4}, {5}, {6}", Number, No, Name, Gender,_Age,Score);
        }
    }

} 


internal class Program
{
    static void Main(string[] args)
    {
        DateTime date1 = new DateTime(2001, 8, 9);
        Student s1 = new Student(0106101, "zhangsan", "gentle", date1, 90.88);
        
        s1.print();
        Student s2 = new Student(0106102, "李四", "gentle", new DateTime(2000, 3, 12), 99.88);
        s2.print();

        s1 = new Student(0106103, "王五", "tttt", new DateTime(2002, 12, 2), 80.88);
        s1.print();

        Console.ReadKey();
    }
}
class Person
{
    /// 
    /// 字段 基本信息
    /// 
    private string _Name;
    private string _Gender;
    protected int _Age;
    /// 
    /// 属性 名字 性别
    /// 
    public string Name
    {
        get
        {
            return _Name;
        }
        set
        {
            _Name = value;
        }
    }
    public string Gender
    {
        get
        {
            return _Gender;
        }
        set
        {
            _Gender = value;
        }
    }
    public virtual int GetAge()//虚方法
    {
        return _Age;
    }

    public Person(string Name = "", string Gender = "")
    {
        _Name = Name;
        _Gender = Gender;
        _Age = 0;
    }
}
class Student : Person
{
    /// 
    /// 字段
    /// 
    private int _No;
    private double _Score;
    private DateTime _BirthDate;
    private static int _Number = 0;
    public Student()
    {
        _Number++;
    }
    ~Student()
    {
        if (_Number > 0) _Number--;
    }
    public Student(int No, string Name, string Gender, DateTime BirthDate, double Score) : base(Name, Gender)
    {

        _Number++; //_Number = Number;
        _No = No;
        _BirthDate = BirthDate;
        _Score = Score;
        _Age = GetAge();
    }
    /// 
    /// 属性
    /// 
    public int No
    {
        get
        {
            return _No;
        }
        set
        {
            _No = value;
        }
    }
    public double Score
    {
        get
        {
            return _Score;
        }
        set
        {
            _Score = value;
        }
    }
    public static int Number//待修改
    {
        get
        {
            return _Number;
        }
        // set
        // {
        //     _Number = value;
        // }
    }
    public override int GetAge()
    {
        DateTime now = DateTime.Now;
        int age = now.Year - _BirthDate.Year;
        if (now.Month < _BirthDate.Month || (now.Month == _BirthDate.Month && now.Day < _BirthDate.Day))
        {
            age--;
        }
        _Age = age;
        return _Age;
    }
    public void print()//Number:No,
    {
        Console.WriteLine("{0}:, {1}, {2}, {3}, {4}, {5}", _Number, _No, base.Name, base.Gender, base._Age, _Score);
    }
}

img



internal class Program
{
    static void Main(string[] args)
    {
        DateTime date1 = new DateTime(2001, 8, 9);
        Student s1 = new Student(0106101, "zhangsan", "gentle", date1, 90.88);
        s1.print();
        Student s2 = new Student(0106102, "李四", "gentle", new DateTime(2000, 3, 12), 99.88);
        s2.print();
        s1 = new Student(0106103, "王五", "tttt", new DateTime(2002, 12, 2), 80.88);
        s1.print();
        Console.ReadKey();
    }
}
class Person
{
    /// 
    /// 字段 基本信息
    /// 
    private string _Name;
    private string _Gender;
    protected int _Age;
    /// 
    /// 属性 名字 性别
    /// 
    public string Name
    {
        get
        {
            return _Name;
        }
        set
        {
            _Name = value;
        }
    }
    public string Gender
    {
        get
        {
            return _Gender;
        }
        set
        {
            _Gender = value;
        }
    }
    public virtual int GetAge()//虚方法
    {
        return _Age;
    }
    public Person(string Name = "", string Gender = "")
    {
        _Name = Name;
        _Gender = Gender;
        _Age = 0;
    }
}
class Student : Person
{
    /// 
    /// 字段
    /// 
    private int _No;
    private double _Score;
    private DateTime _BirthDate;
    private static int _Number = 0;
    public Student()
    {
        _Number++;
    }
    ~Student()
    {
        if (_Number > 0) _Number--;
    }
    public Student(int No, string Name, string Gender, DateTime BirthDate, double Score) : base(Name, Gender)
    {
        _Number++; //_Number = Number;
        _No = No;
        _BirthDate = BirthDate;
        _Score = Score;
        _Age = GetAge();
    }
    /// 
    /// 属性
    /// 
    public int No
    {
        get
        {
            return _No;
        }
        set
        {
            _No = value;
        }
    }
    public double Score
    {
        get
        {
            return _Score;
        }
        set
        {
            _Score = value;
        }
    }
    public static int Number//待修改
    {
        get
        {
            return _Number;
        }
        // set
        // {
        //     _Number = value;
        // }
    }
    public override int GetAge()
    {
        DateTime now = DateTime.Now;
        int age = now.Year - _BirthDate.Year;
        if (now.Month < _BirthDate.Month || (now.Month == _BirthDate.Month && now.Day < _BirthDate.Day))
        {
            age--;
        }
        _Age = age;
        return _Age;
    }
    public void print()//Number:No,
    {
        Console.WriteLine("{0}:, {1}, {2}, {3}, {4}, {5}", _Number, _No, base.Name, base.Gender, base._Age, _Score);
    }
}

C/C++---Person类、学生类
https://blog.csdn.net/qq_44528283/article/details/111177794