Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 3
Регистрация: 04.01.2014
Сообщений: 135
1

Поместить экземпляры разных классов в один массив

26.02.2018, 22:50. Показов 931. Ответов 2
Метки нет (Все метки)

Не пойму немного, это через List делается или иначе? Необходимо для дальнейшей сортировки и ограниченного вывода
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace AutoTrans
{
   public class Transport     //общие класс транспорта
    {
        public string model;         //наименование
        public double consumption;   //расход топлива    
        public int maxMass;          //макс. допус. масса
        
       public class Passenger : Transport//класс пассажирский транспорт
        {
            public int passQty;     //кол-во пасс. мест
 
            public Passenger(string m,double c, int mas,int p)//конструктор пассажирских
            {
                model = m;
                consumption = c;
                maxMass = mas;
                passQty = p;
            }
        }
 
        public  class Cargo : Transport  //грузовики
        {
            public double cargoVol;    //объем груза
            public int cargoMass; //масса груза
 
            public Cargo(string m,double c, int mas,double v,int mm ) //конструктор грузовых
            {
                model = m;
                consumption = c;
                maxMass = mas;
                cargoVol = v;
                cargoMass = mm;
            }
 
           public class SpecCargo : Cargo//спец грузовики
            {
                string regInf;      //номер и дата освидетельствования
                string specs;       //специализация
 
                 public SpecCargo(string m,double c, int mas,double v,int mm,string r, string s ) //конструктор грузовых
            {
                model = m;
                consumption = c;
                maxMass = mas;
                cargoVol = v;
                cargoMass = mm;
                regInf = r;
                specs = s;
            }
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Transport.Passenger p1 = new Transport.Passenger("Газель",17.5,3500,14);
            Transport.Passenger p2 = new Transport.Passenger("Баргузин",13.3,2800,10);
            Transport.Passenger p3 = new Transport.Passenger("Toyota Coaster 4.2D",20.7,3170,30);
            Transport.Passenger p4 = new Transport.Passenger("Hyundai Aero City",37.3,10400,78);
 
            Transport.Cargo c1 = new Transport.Cargo("Камаз", 34.0, 7080,8.0,8000);
            Transport.Cargo c2 = new Transport.Cargo("Маз",29.7,5500,3.0,4500);
            Transport.Cargo c3 = new Transport.Cargo("Volvo FM 4x2",21.0, 10900, 10.0,11000);
            Transport.Cargo c4 = new Transport.Cargo("Renault T 440", 22.0,12000, 10.8, 11800);
 
            Transport.Cargo.SpecCargo s1 = new Transport.Cargo.SpecCargo("Volvo FM 4x2",21.0,11000,10.1,5000,
                "4565 еа 12.12.12", "рефрижиратор");
            Transport.Cargo.SpecCargo s2 = new Transport.Cargo.SpecCargo("Volvo FN 550", 30.5, 16000, 8.0, 15000,
                "6598 ie 5.02.13", "миксер");
            Transport.Cargo.SpecCargo s3 = new Transport.Cargo.SpecCargo("Камаз", 39.0, 8000, 9.0, 8000,
                "1251 aa 6.01.09", "лесовоз");
            Transport.Cargo.SpecCargo s4 = new Transport.Cargo.SpecCargo("Маз", 29.7, 5500,4.3,4500,
                "1176 оо 08.06.06", "молоковоз");
        }
    }
}
Добавлено через 18 минут
подскажите еще если Вас не затруднит почему компилятор ругается на "AutoTrans.Transport.Cargo" не содержит конструктор, который принимает аргументы "0" 47 24
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2018, 22:50
Ответы с готовыми решениями:

Как поместить в STL-контейнер экземпляры разных классов?
Как поместить в контейнер экземпляры разных классов(типов) :thank_you:?

Как сохранить экземпляры классов в один массив ?
Ребята, привет. Подскажите, пожалуйста, как решить задачу. Есть абстрактный класс. Есть два...

Создать экземпляры разных производных классов в зависимости от условий
нужно дописать программу. если длинна колесной базы равна 4500 и количество дверей - 2 тогда ето...

Как положить в массив экземпляры классов?
Здравствуйте! Есть задача. У меня есть 2 класса FixedMonthlyCostPaidService и ...

2
1143 / 735 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
26.02.2018, 23:34 2
Цитата Сообщение от kloppy69 Посмотреть сообщение
почему компилятор ругается на "AutoTrans.Transport.Cargo" не содержит конструктор, который принимает аргументы "0"
Потому что Cargo не содержит конструктор, который принимает ноль аргументов. Передавайте в конструктор базового класса необходимые аргументы.

C#
1
2
public SpecCargo(string m,double c, int mas,double v,int mm,string r, string s )
   :base(m, c, mas, v, mm);
1
Модератор
Эксперт .NET
5820 / 4697 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
26.02.2018, 23:37 3
kloppy69,
Экземпляры разных классов можно разместить в одну коллекцию, если они являются наследниками одного класса или реализуют один интерфейс. Т.е. коллекция должна быть типа Transport (например, List<Transport>).
И нужно вынести описания производных классов из базовых классов.
Цитата Сообщение от kloppy69 Посмотреть сообщение
почему компилятор ругается на "AutoTrans.Transport.Cargo" не содержит конструктор, который принимает аргументы "0"
Потому что не содержит. Используйте вызов параметризованного конструктора базового класса:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class A
{
    int a;    
    public A(int a)
    {
        this.a=a;
    }
}
 
class B : A
{
    int b;
    public B(int a, int b) : base(a)
    {
        this.b=b;
    }
}
И почитайте учебник по ООП.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2018, 23:37

Как в один вектор поместить много классов?
Всем привет. Есть задумка а как сделать пока не ясно. Есть в наличии допустим много классов, в...

Массив разных классов. Как добратся до всех полей этих классов?
Все классы имеют общего предка. Экземпляры этих классов запихнуты в один массив нужно както...

SELECT - запрос: выбрать данные из двух таблиц из разных столбцов и поместить в один
Например есть две таблицы: // PERSONS1 &quot;1&quot; &quot;Коля&quot; &quot;2&quot; &quot;Маша&quot; и // PERSONS2 &quot;1&quot; ...

Запись и чтение объектов разных классов в один файл
Здравствуйте. Изучаю С++ по Лафоре. Дошёл до места, где объясняется, как записывать объекты разных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru