С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
rikimaru2013
C++ Game Dev
2473 / 1141 / 349
Регистрация: 30.11.2013
Сообщений: 3,709
1

Nested classes && enum declaration

14.04.2015, 22:06. Просмотров 835. Ответов 3
Метки нет (Все метки)

Добрый вечер,

вопрос больше наверно с тем холливаров: зачем использовать вложенные классы и enum class'es, если можно их вынести в отдельный файл и использовать многоразово. Описали новую сущность и приковали наручниками к другой сущности - это же жестоко.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2015, 22:06
Ответы с готовыми решениями:

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp;...

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;)
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef...

STL & classes
Товарищи, выручайте. Ситуация следующая. Имеется два *.h файла, в каждом файле...

Visual C++ & enum
Проблема в том что мой компилятор считает нормальным следующий код: typedef...

В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9&
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты...

3
Tulosba
:)
Эксперт С++
4750 / 3244 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.04.2015, 22:25 2
Лучший ответ Сообщение было отмечено rikimaru2013 как решение

Решение

Вложенность подчеркивает связанность сущностей. Нет смысла выносить вложенную сущность наружу, если она не должна по идеологии использоваться самостоятельно.
3
rikimaru2013
C++ Game Dev
2473 / 1141 / 349
Регистрация: 30.11.2013
Сообщений: 3,709
14.04.2015, 22:29  [ТС] 3
Читал об этом, там было по другому: "делая класс nested мы говорим, что он полностью подчинается данному классу и не может использоваться вне. Более того, public и private секция nested класса может меняться программистом как угодно, ведь не кто не даёт гарантии на nested классы, а только на интерфейс своего разрабатываемого класса".

Еще бы плюсов этого ужаса!

Еще не забываем обсуждать этот бред (как по мне)
C++
1
2
3
4
5
6
7
8
9
10
class Foo
{
    enum class Way
    {
        LEFT,
        RIGHT,
        TOP,
        BOTTOM,
    };
};
Такое ощущение, что настолько тяжело вынести enum в целях расширяемости в отдельный класс
0
Tulosba
:)
Эксперт С++
4750 / 3244 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.04.2015, 22:31 4
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Более того, public и private секция nested класса может меняться программистом как угодно
Если вложенный класс находится в public или protected части, то public часть вложенного класса всё же менять без последствий не получится.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2015, 22:31

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка?
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size;...

Порядок вычисления: операторы «|» и «||», «&» и «&&»
В Java булевые операторы «|» и «||», и «&amp;» и «&amp;&amp;» отличаются друг от друга...

Friend ostream& operator<<(ostream& stream, CArr& obj);
CArr.h #pragma once class CArr{ int* arr = nullptr; int size = 10; void...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru