Виртуальная функция выводит неправильные значения - C#
Формулировка задачи:
Рост и вес выводит 0, как исправить?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections; namespace Виртуальные_методы { class Person { private double rost, ves; private string FName, Lname, Mname; public Person(string Fname, string Lname, string Mname, double rost, double ves) { this.FName = Fname; this.Lname = Lname; this.Mname = Mname; } public virtual void Pasport() { Console.WriteLine("Фамилия {0} Имя {1} Отчество {2} Рост {3} Вес {4}", Lname, FName, Mname, rost, ves); } } class Student : Person { private int mark, course; private double rost, ves; private string FName, Lname, Mname; public Student(int mark, int course, string Fname, string Lname, string Mname, double rost, double ves) : base(Fname, Lname, Mname, rost, ves) { this.mark = mark; this.course = course; } public override void Pasport() { base.Pasport(); Console.WriteLine("Отметка {0} курс {1}", mark, course); } } class Teacher : Person { private string obr, dolj; private double rost, ves; private string FName, Lname, Mname; public Teacher(string obr, string dolj, string Fname, string Lname, string Mname, double rost, double ves) : base(Fname, Lname, Mname, rost, ves) { this.obr = obr; this.dolj = dolj; } public override void Pasport() { base.Pasport(); Console.WriteLine("Образование {0} Должность {1}", obr, dolj); } } class Program { static void Main(string[] args) { Student[] ss = new Student[3]; Teacher[] tt = new Teacher[3]; ss[0] = new Student(10, 1, "Иван", "Иванов", "Витальевич", 170, 50); ss[1] = new Student(8, 1, "Иван", "Иванов", "Викторович", 180, 80); ss[2] = new Student(3, 2, "Иван", "Иванов", "Сергеевич", 200, 90); tt[0] = new Teacher("Высшее", "Доцент", "Петя", "Петров", "Сергеевич", 175, 70); tt[1] = new Teacher("Высшее", "Преподаватель", "Петя", "Петров", "Александрович", 195, 80); tt[2] = new Teacher("Среднее", "Доктор", "Петя", "Петров", "Иванович", 200, 90); ArrayList footballteam = new ArrayList(); for (int i = 0; i < 3; i++) { footballteam.Add(ss[i]); footballteam.Add(tt[i]); } Console.Clear(); Console.WriteLine("Студенты"); foreach (Student l in ss) { l.Pasport(); } Console.ReadLine(); Console.Clear(); Console.WriteLine("Преподаватели"); foreach (Teacher t in tt) { t.Pasport(); } Console.ReadLine(); Console.Clear(); Console.WriteLine("Комманда"); foreach (Person p in footballteam) { p.Pasport(); } Console.ReadLine(); } } }
Решение задачи: «Виртуальная функция выводит неправильные значения»
textual
Листинг программы
class Person { protected double rost, ves; protected string FName, Lname, Mname; public Person(string Fname, string Lname, string Mname, double rost, double ves) { this.FName = Fname; this.Lname = Lname; this.Mname = Mname; this.rost = rost; this.ves = ves; } public virtual void Pasport() { Console.WriteLine("Фамилия {0} Имя {1} Отчество {2} Рост {3} Вес {4}", Lname, FName, Mname, rost, ves); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д