Виртуальная функция выводит неправильные значения - 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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы