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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2016, 14:42   #41
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сильно загромождают код класса.
Ну смотря какой класс.

И можно в .h его только объявить:
Код:
#include <memory>

class MyClass
{
public:
    MyClass();

private:
  struct Impl;
  std::unique_ptr<Impl> m_impl;
};
Код:
#include "myclass.h"

struct MyClass::Impl
{
  Impl()
  : data(0)
  { }

  int data;
};

MyClass::MyClass()
    : m_impl(new Impl)
{

}
Цитата:
А вот вложенные функции уже тема.
В С++11 лямбды добавили вместо них.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.03.2016, 15:46   #42
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

В с++ может и норм, там же можно класс на .h и .cpp файлики растягивать.

Лямбды это другая фича.

Вот например у нас в методе какой-то хитрый алгоритм. И явно выделяются подфункции, которые нигде больше не нужны кроме как в этом самом методе. Т.е. перетягивать их в приватный метод - загромождать пространство класса. Некоторые ещё заводят для всякой фигни класс Helper, что тоже не очень фэньшуисто.

Вот например вложенные функции в гнушном си.
http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html
the_deer_one вне форума Ответить с цитированием
Старый 14.03.2016, 16:16   #43
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
В с++ может и норм
Так в Java и C# вышеописанных проблем со скрытием обычно нет, ибо можно сам класс private сделать Так же как и с долгой перекомпиляцией, бинарным интерфейсом для библиотек и т.п.

Цитата:
Вот например у нас в методе какой-то хитрый алгоритм. И явно выделяются подфункции, которые нигде больше не нужны кроме как в этом самом методе. Т.е. перетягивать их в приватный метод - загромождать пространство класса. Некоторые ещё заводят для всякой фигни класс Helper, что тоже не очень фэньшуисто.
Ну да, жалко что нету, но при желании наверно можно и лямбды вместо них использовать
http://stackoverflow.com/questions/9...sted-functions
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.03.2016, 16:54   #44
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Alex11223
Лямбды можно, но это типа плохо с точки зрения производительности. Так по идее заново присваивается значение переменной. Может оно и не сильно влияет, но как то колхозно.

Код:
Func<a,b,c> some = a,b => { /*   */ };
Ну и с этой фичей можно написать непоняток, типа функции в два экрана, которая на самом деле вложена в другую функцию, которая вложена в третью функцию. И ещё эта фича приведёт к усложнению студийных отображалок архитектуры. Так там в одном окошке класс, в другом его методы. А тут ещё целые деревья будут из этих функций.
the_deer_one вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объявление массива класса в самом классе t2skler Общие вопросы C/C++ 9 11.01.2012 14:56
В классе создать массив элементов из другого класса LadyDisco Общие вопросы по Java, Java SE, Kotlin 0 02.05.2011 02:48
Пример создания класса и объекта в этом классе Valera Помощь студентам 0 19.04.2011 12:50
Использование объектов класса потомка в классе предке Invisible_ Общие вопросы C/C++ 1 05.04.2011 23:40
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? TwiX Общие вопросы Delphi 3 15.11.2009 00:54