The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Sealed C++ class."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Sealed C++ class." 
Сообщение от Привет Искать по авторуВ закладки on 30-Сен-05, 16:09  (MSK)
Кто поможет решить задачу?

http://dnevnik.bigmir.net/comments.php?id=446165&cid=118469

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

  • Sealed C++ class., DeadMustdie, 16:29 , 30-Сен-05, (1)  
    • Sealed C++ class., Привет, 14:29 , 01-Окт-05, (2)  
      • Sealed C++ class., DeadMustdie, 21:02 , 01-Окт-05, (3)  
        • Sealed C++ class., Lazarenko, 01:02 , 02-Окт-05, (4)  
          • Sealed C++ class., Lazarenko, 15:17 , 02-Окт-05, (5)  
            • Sealed C++ class., DeadMustdie, 21:37 , 02-Окт-05, (9)  
      • Sealed C++ class., Lazarenko, 15:22 , 02-Окт-05, (7)  
        • Sealed C++ class., DeadMustdie, 21:34 , 02-Окт-05, (8)  
  • Sealed C++ class., Lazarenko, 15:20 , 02-Окт-05, (6)  
    • Sealed C++ class., DeadMustdie, 21:43 , 02-Окт-05, (10)  
      • Sealed C++ class., Lazarenko, 23:09 , 02-Окт-05, (11)  
        • Sealed C++ class., jd, 09:22 , 03-Окт-05, (12)  
        • Sealed C++ class., DeadMustdie, 18:48 , 03-Окт-05, (15)  
    • Sealed C++ class., chip, 09:40 , 03-Окт-05, (13)  
      • Sealed C++ class., DeadMustdie, 18:41 , 03-Окт-05, (14)  
        • Sealed C++ class., chip, 09:54 , 04-Окт-05, (16)  

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Sealed C++ class." 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 30-Сен-05, 16:29  (MSK)
>Кто поможет решить задачу?
>
>http://dnevnik.bigmir.net/comments.php?id=446165&cid=118469

Дурацкое дело не хитрое. Задачка для лохов.

class Class
{
private:
  Class() {}

public:
  static Class* newInstance()
  {
    return new Class();
  }
};

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Sealed C++ class." 
Сообщение от Привет Искать по авторуВ закладки on 01-Окт-05, 14:29  (MSK)
>>Кто поможет решить задачу?
>>
>>http://dnevnik.bigmir.net/comments.php?id=446165&cid=118469
>
>Дурацкое дело не хитрое. Задачка для лохов.
>
>class Class
>{
>private:
>  Class() {}
>
>public:
>  static Class* newInstance()
>  {
>    return new Class();
>  }
>};
Простите, но, используя ваш код, я не могу написать:

int main()
{
  Class c;
  return 0;
}

А это одно из требований.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Sealed C++ class." 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 01-Окт-05, 21:02  (MSK)
>А это одно из требований.

Дословно требования задачи:

Нужно создать такой тип Sealed, чтобы:
1. У него были public методы
2. Его экземпляр можно было создать
3. У его экземпляра можно было вызывать public методы
4. При попытке наследования (Derived) нельзя было создать экземпляр Derived

Здесь не указано, каким образом должен создаваться экземпляр.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Sealed C++ class." 
Сообщение от Lazarenko emailИскать по авторуВ закладки on 02-Окт-05, 01:02  (MSK)
>>А это одно из требований.
>
>Дословно требования задачи:
>
>Нужно создать такой тип Sealed, чтобы:
>1. У него были public методы
>2. Его экземпляр можно было создать
>3. У его экземпляра можно было вызывать public методы
>4. При попытке наследования (Derived) нельзя было создать экземпляр Derived
>
>Здесь не указано, каким образом должен создаваться экземпляр.

Ну хорошо, скажем так, вместо 2 пункта - его конструктор и деструктор был public.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Sealed C++ class." 
Сообщение от Lazarenko emailИскать по авторуВ закладки on 02-Окт-05, 15:17  (MSK)
Ну что, задача для лохов, простите, как вы выражаетесь, а никто решить не может?
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Sealed C++ class." 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 02-Окт-05, 21:37  (MSK)
>Ну что, задача для лохов, простите, как вы выражаетесь,
>а никто решить не может?

Решение, точно соответствующее букве формулировки задачи, я Вам привёл.
Вариант с protected => private наследованием изящнее, но это лишь
означает, что решение не единственно.

Собственно, практическая полезность конструкции sealed-класса сомнительна,
а потому и синтаксическое изящество - малополезно.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Sealed C++ class." 
Сообщение от Lazarenko emailИскать по авторуВ закладки on 02-Окт-05, 15:22  (MSK)
Кстати, я явно сказал, что нужен аналог C# sealed class. Если вы хоть немного знакомы с C#, то должны знать, что это обычный класс, от которого нельзя наследоваться, а не класс, создаваемый через фабрику.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Sealed C++ class." 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 02-Окт-05, 21:34  (MSK)
>Если вы хоть немного знакомы с C#

Чур меня, чур! Изыди, нечистое творение Билла!

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Sealed C++ class." 
Сообщение от Lazarenko emailИскать по авторуВ закладки on 02-Окт-05, 15:20  (MSK)
Собеседование никто не прошел :-) А решение вот такое:

class SealedBase
{
protected:
  SealedBase() { }
  virtual ~SealedBase() { }
};

class Sealed : virtual private SealedBase
{
public:
  Sealed() { }
  virtual ~Sealed() { }
};

Не решаемая задача - унаследоваться от класса Sealed, это, по сути, аналог C# sealed class.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Sealed C++ class." 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 02-Окт-05, 21:43  (MSK)
Голь на выдумки хитра. Во всех смыслах:

class SealedBase
{
protected:
  SealedBase() { }
  virtual ~SealedBase() { }
};

class Sealed : virtual private SealedBase
{
public:
  Sealed() { }
  virtual ~Sealed() { }
};

class Bastard : public Sealed, virtual public SealedBase
{
public:
  Bastard()
    : Sealed()
  {}
};


int main()
{
  Bastard bastard;
  return 0;
}

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Sealed C++ class." 
Сообщение от Lazarenko emailИскать по авторуВ закладки on 02-Окт-05, 23:09  (MSK)
>Голь на выдумки хитра. Во всех смыслах:
>
>class SealedBase
>{
>protected:
>  SealedBase() { }
>  virtual ~SealedBase() { }
>};
>
>class Sealed : virtual private SealedBase
>{
>public:
>  Sealed() { }
>  virtual ~Sealed() { }
>};
>
>class Bastard : public Sealed, virtual public SealedBase
>{
>public:
>  Bastard()
>    : Sealed()
>  {}
>};
>
>
>int main()
>{
>  Bastard bastard;
>  return 0;
>}

Сдесь у тебя получилось, а вот так, слабо? -

class SealedBase
{
  friend class Sealed;

private:
  SealedBase() { }
  virtual ~SealedBase() { }
};

class Sealed : virtual private SealedBase
{
public:
  Sealed() { }
  virtual ~Sealed() { }
};

Тут уж как бы ты на выдумки не был .... а ничего не выйдет :-)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Sealed C++ class." 
Сообщение от jd Искать по авторуВ закладки(??) on 03-Окт-05, 09:22  (MSK)
Это ж надо так изголяться, чтобы из C++ сделать C#... :)

Насчёт "а ничего не выйдет" - средствами языка может и не выйдет, но если очень захочется, то всё прекрасно получится...
Вопрос, зачем вообще это нужно?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Sealed C++ class." 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 03-Окт-05, 18:48  (MSK)
>Сдесь у тебя получилось, а вот так, слабо? -

Ура! Новый образец академического программирования!
Осталось только приложить формальное доказательство невозможности
наследования от Sealed, основанное на разложении контекстно-свободной
грамматики в нормальную форму Грейбах. :-)

>Тут уж как бы ты на выдумки не был .... а ничего не выйдет :-)

А вот свиней мы с Вами на брудершафт не пасли. ;\

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Sealed C++ class." 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 03-Окт-05, 09:40  (MSK)
>Собеседование никто не прошел :-) А решение вот такое:

Коту заняться не чем, так он ... ?!

ps: смысл этой игры с никами ?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Sealed C++ class." 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 03-Окт-05, 18:41  (MSK)
>Коту заняться не чем, так он ... ?!
>
>ps: смысл этой игры с никами ?

Старый Дедушка Маздай никакими другими никами на этом форуме не пользуется.
А то ведь и тараканов в голове нажить можно. ;)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "Sealed C++ class." 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 04-Окт-05, 09:54  (MSK)
>>Коту заняться не чем, так он ... ?!
>>
>>ps: смысл этой игры с никами ?
>
>Старый Дедушка Маздай никакими другими никами на этом форуме не пользуется.
>А то ведь и тараканов в голове нажить можно. ;)

DeadMustdie ответ-то вопрошавшему. Ты к делу отношения, извени, не имеешь ;)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру