Виртуальная функция выводит неправильные значения - 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д