Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Наследственность классов, задача с наследственностю 
:(
    Опции темы
Sartorius
Дата 14.5.2007, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 8
Всего: 37



Цитата

не думаю, что тут действительно имеется ввиду наследование рыбами от океана, может просто формулировка странная, потому что это просто бессмыслено. Рыба


 На самом деле, если не вникать в смысл такой иерархии , то наследование вполне логично, ведь рыбы имеют также как и океан скорость и чего-то там еще... Но это же ужесно  smile  Это даже на has-a не похоже.

 ЗЫ я бы сделал океан конвейером живых объектов-рыб. 

 ЗЗЫ А препода самого отнаследовал бы от океана  smile 
PM MAIL ICQ   Вверх
Anikmar
Дата 14.5.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(Sartorius @  14.5.2007,  22:08 Найти цитируемый пост)
ЗЗЫ А препода самого отнаследовал бы от океана    

 smile 
Сколько раз?!  smile    smile 
PM MAIL ICQ   Вверх
Partizan
Дата 14.5.2007, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 4
Всего: 67



 smile 
Anikmar, =) одного думаю будет достаточно чтоб чёнить более логичное в следующий раз студентам предлагал)


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Hurricane
Дата 14.5.2007, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 10.4.2007

Репутация: 6
Всего: 9



Цитата(Sartorius @ 14.5.2007,  14:08)
... ведь рыбы имеют также как и океан скорость и чего-то там еще...

Двигаясь вместе с Землей вокруг Солнца?  smile 
PM MAIL   Вверх
Anikmar
Дата 14.5.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(Sartorius @  14.5.2007,  22:08 Найти цитируемый пост)
ЗЫ я бы сделал океан конвейером живых объектов-рыб. 

А для мертвых объектов рыб предусмотрели бы отдельный океан?!

Добавлено через 1 минуту и 29 секунд
Мда... Рыболовецкий траулер. Объект, принадлежащий океану и являющийся конвейером мертвых объектов рыб!
PM MAIL ICQ   Вверх
Sartorius
Дата 14.5.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 8
Всего: 37



Anikmar, это не шутка((
"Живой" или "активный" объект - это шаблон

 ЗЫ погуглите.... может пригодиться. прикольно многозадачность без нитей организовывать

Это сообщение отредактировал(а) Sartorius - 14.5.2007, 22:42
PM MAIL ICQ   Вверх
Hurricane
Дата 14.5.2007, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 10.4.2007

Репутация: 6
Всего: 9



Цитата(Anikmar @ 14.5.2007,  14:28)
Мда... Рыболовецкий траулер. Объект, принадлежащий океану и являющийся конвейером мертвых объектов рыб!

Почему же конвейером? Обычный контенер... Еще и фиксированного размера... std::vector вполне подойдет.  smile Но лучше - многомерный массив...  smile 

Это сообщение отредактировал(а) Hurricane - 14.5.2007, 22:50
PM MAIL   Вверх
Anikmar
Дата 14.5.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(Hurricane @  14.5.2007,  22:41 Найти цитируемый пост)
Почему же конвейером? Обычный контенер... Еще и фиксированного размера... std::vector вполне подойдет.   Но лучше - многомерный массив...   

Потому, что в ответ на:
Цитата(Sartorius @  14.5.2007,  22:08 Найти цитируемый пост)
 ЗЫ я бы сделал океан конвейером живых объектов-рыб. 

 smile 
PM MAIL ICQ   Вверх
Sartorius
Дата 14.5.2007, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 8
Всего: 37



 
Hurricane, конвейер - это не очередь . Это любой контейнер , обеспечивающий последовательную обработку, хранящихся в нем объектов

PM MAIL ICQ   Вверх
Lomir
Дата 14.5.2007, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 30.1.2007
Где: Lithuania::Kaunas

Репутация: 1
Всего: 1



Про std::vector у нас преподы вопше думаю мало что знают (вовсяком случае там, где я учусь). И его использование может плохо кончиться.

Если следовать описанию задания с оригинала, тогда так и получаеться Рыба унаследована у океана.
Откуда тока такие преподы беруться. Повесил бы...
2 cyrrus:
Цитата
теоретически я понимаю, но практически не очень

Так вот, советую обьяснить преподу, что наследование сдесь не очень приемлимо с точки зрения ООП.

П.С. Это во всех универах так или тока у нас...?
PM MAIL ICQ Skype   Вверх
Hurricane
Дата 14.5.2007, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 10.4.2007

Репутация: 6
Всего: 9



Цитата(Sartorius @ 14.5.2007,  14:59)
Hurricane, конвейер - это не очередь . Это любой контейнер , обеспечивающий последовательную обработку, хранящихся в нем объектов

Так мы вроде про траулер? А какая там обработка? Сложили дохлую рыбу в трюм и поплыли дальше. Говорю же - обычный контейнер.  smile

Добавлено через 7 минут и 15 секунд
Цитата(Lomir @ 14.5.2007,  15:33)
Про std::vector у нас преподы вопше думаю мало что знают (вовсяком случае там, где я учусь). И его использование может плохо кончиться.


А что там может плохо кончиться? Ставишь try-catch и ловишь std::exception  smile 

Цитата(Lomir @ 14.5.2007,  15:33)
Если следовать описанию задания с оригинала, тогда так и получаеться Рыба унаследована у океана.
Откуда тока такие преподы беруться. Повесил бы...


Ну я же где-то надцать постов выше уже высказал мысль, что рыба унаследована не от океана, а от ячейки океана.
PM MAIL   Вверх
cyrrus
Дата 15.5.2007, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.5.2007

Репутация: нет
Всего: нет



хех, вам смешно а мне задачу сдавать надо  smile ; черт процитав про контеинеры с дохлыми рыбами и мне смешно.  smile 
PM MAIL   Вверх
zkv
Дата 15.5.2007, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(cyrrus @  15.5.2007,  00:29 Найти цитируемый пост)
хех, вам смешно а мне задачу сдавать надо

ну вот нечто приближенное к заданию (как я считаю):
Код

#include <iostream>

struct POINT3d
{
    int x;
    int y;
    int z;
};

class COceanicObject
{
private://не обязательно, но я ставлю для наглядности 
  int      m_iSpeed;
  POINT3d m_ptPlace;
//по любому еще надо направление указывать 
public: 
    COceanicObject( POINT3d ptPlace, int iSpeed )
        : m_ptPlace( ptPlace ), m_iSpeed( iSpeed )
    {}
    virtual POINT3d GetCoord( int iTime)const
    {
        //расчет надо делать с учетом направления
        POINT3d ptRet;
        ptRet.x = m_ptPlace.x + iTime * m_iSpeed;      
        ptRet.y = m_ptPlace.y + iTime * m_iSpeed;
        ptRet.z = m_ptPlace.z + iTime * m_iSpeed;
        return ptRet; 
    }
};

class CFish : public COceanicObject
{
private://не обязательно, но я ставлю для наглядности
  int m_iSpeed;
//понятия не имею, какие еще координаты сюда можно запихать :(
//по любому еще надо направление указывать 
public:
    CFish( POINT3d ptPlace, int iOceanSpeed, int iFishSpeed )
        : COceanicObject( ptPlace, iOceanSpeed ), 
        m_iSpeed( iFishSpeed )
    {}
    
    virtual POINT3d GetCoord( int iTime)const
    {
        //расчет надо делать с учетом направления
        POINT3d ptRet = COceanicObject::GetCoord( iTime );
        ptRet.x += iTime * m_iSpeed;      
        ptRet.y += iTime * m_iSpeed;
        ptRet.z += iTime * m_iSpeed;
        return ptRet;
    }
};

std::ostream &operator<<( std::ostream &oStr, const POINT3d &point3d )
{
    return oStr<<"( "<<point3d.x<<", "<<point3d.y<<", "<<point3d.z<<" )";
}

int main()
{
    POINT3d ptPlace = {0,0,0};
    CFish fish( ptPlace, 1, 2 );
    std::cout<<"\n 1 sek - "<<fish.GetCoord( 1 );
    std::cout<<"\n 2 sek - "<<fish.GetCoord( 2 );
    std::cout<<"\n 3 sek - "<<fish.GetCoord( 3 );

    std::cin.get();
}

конструктивная критика приветствуется smile

подумал, что скорость можно задавать тоже объектом структуры POINT3d, где каждое поле - скорость в соответствующем направлении. Но с этим автор думаю сам справится smile

Это сообщение отредактировал(а) zkv - 15.5.2007, 09:28
PM MAIL   Вверх
cyrrus
Дата 15.5.2007, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.5.2007

Репутация: нет
Всего: нет



zkv
Цитата

private://не обязательно, но я ставлю для наглядности 

наглядность как раз приветствуется  smile 
И если можно объясните вот это:
Код

std::ostream &operator<<( std::ostream &oStr, const POINT3d &point3d )
{
    return oStr<<"( "<<point3d.x<<", "<<point3d.y<<", "<<point3d.z<<" )";
}


PM MAIL   Вверх
zkv
Дата 15.5.2007, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(cyrrus @  15.5.2007,  09:32 Найти цитируемый пост)
std::ostream &operator<<( std::ostream &oStr, const POINT3d &point3d )
{
    return oStr<<"( "<<point3d.x<<", "<<point3d.y<<", "<<point3d.z<<" )";
}

ну тут понтов больше на самом деле чем пользы smile это перегрузка оператор << для потока вывода, проще говоря, чтобы потом мы могли вывести точку таким образом:
Код

   std::cout<<"\n 1 sek - "<<fish.GetCoord( 1 );

но можно не перегружать, и выводить просто:
Код

POINT3d point3d = fish.GetCoord( 1 );
std::cout<<"\n 1 sek - "<<"( "<<point3d.x<<", "<<point3d.y<<", "<<point3d.z<<" )";

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1237 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.