Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2018, 16:31   #1
AnatoliyAnatoliy
Пользователь
 
Регистрация: 08.01.2018
Сообщений: 19
По умолчанию ++ / Наследование и конструкторы

Помогите, пожалуйста. Завис на этом вопросе. Не могу найти решение.

Если у меня вот так:

Код:
std::vector<Komanda> komandy; // массив команд типа Komanda
Komanda* pobeditel; // победитель (можно ли сделать ссылку на команду-победителя??)
То как мне правильно написать в конструкторе по умолчанию (без параметров)?
Код:
Igra()
    {
        this->nazvanieigry = "Первая игра сезона";
        this->komandy = ????????; // какое количество команд сделать по-умолчанию? максимально возможное? и как их задать здесь? new Komanda[5]?
                this->pobeditel = ????; // указать null - нет ссылки? 
    }
Или не делать конструктор по умолчанию, а сделать только сразу конструктор с параметрами (так можно?):

Код:
Igra(std::string nazvanieigry, std::vector<Komanda> komandy, Komanda* pobeditel)
    {
        this->nazvanieigry = nazvanieigry;
        this->komandy = komandy;
        this->pobeditel = pobeditel;
    }


Может я вообще не так все делаю.

У меня должен быть класс Игра, который состоит из:
- разные string и int (название игры, дата проведения и т.д.)
- вектора объектов типа Команда
- вектор объектов типа Эксперты
- указатель? на команду-победителя
?? должны быть классы-наследники - типы игр (1/8, 1/4, 1/2, финал)...

В свою очередь, Команда тоже состоит из:
- разные string и int (название команды, количество человек в команде и т.д.)
- вектора объектов типа Ученик // каждая команда состоит не менее, чем из 2 участников
- вектор оценок int от Экспертов
- указатель? на капитана команды
* Размер Команды варьируется в зависимости от того, какая это игра (1/8 - 10 команд, 1/4 - 5 команд, 1/2 - 3 команды, финал - 2 команды).
Код:
#include <vector>
 
class Team {};
 
class IgraBase
{
private:
    std::vector<Team> vector;
 
public:
    IgraBase(size_t size = 0) : vector(size) {}
};
 
class Igra1_8 : public IgraBase
{
public:
    Igra1_8() : IgraBase(10) {}
};
 
class Igra1_4 : public IgraBase
{
public:
    Igra1_4() : IgraBase(5) {}
};
 
class Igra1_2 : public IgraBase
{
public:
    Igra1_2() : IgraBase(3) {}
};
 
class IgraFinal : public IgraBase
{
public:
    IgraFinal() : IgraBase(2) {}
};
В свою очередь, Ученик и Эксперт - классы-наследники Человек:
- разные string и int (ФИО, дата рождения и т.д.)
AnatoliyAnatoliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструкторы в С++ Елена Н. Помощь студентам 1 16.12.2013 17:43
Конструкторы Gen_r_questions PHP 4 05.04.2011 12:38
наследование и конструкторы. Пепел Феникса Общие вопросы C/C++ 5 12.11.2010 19:29
конструкторы zhenya.ya Помощь студентам 3 16.09.2010 09:34
Конструкторы Лорд Общие вопросы C/C++ 1 21.12.2008 18:35