Вопросы по теме 'effective-c++'

Прямое объявление include поверх объявления include (ClassFwd.h + Class.h)
В «Эффективном C ++» (3-е издание) Скотт Мейерс в правиле 31 предлагает, чтобы классы помимо классических файлов объявлений (.h) и определений (.cpp) имели файл включения прямого объявления (fwd.h), какой класс, не нуждающийся в полном определении,...
2843 просмотров

Функциональные макросы и странное поведение
Я начал читать «Эффективный C ++», и в какой-то момент в пункте 2 упоминается следующее: // call f with the maximum of a and b #define CALL_WITH_MAX(a, b) f((a) > (b) ? (a) : (b)) ... int a = 5, b = 0; CALL_WITH_MAX(++a, b); // a is...
258 просмотров
schedule 28.04.2022

Как избежать возврата дескрипторов к внутренним элементам объекта — статья 28. Эффективный C++
Пункт 28 Эффективного С++ говорит avoid returning "handles" to object internals . Этот вопрос показывает, как разработать код сделать именно это, думая об инкапсуляции, чтобы избежать случайного раскрытия внутренностей вашего класса. В моем...
685 просмотров
schedule 15.06.2022

заполнить std :: array в списке инициализации членов
Следующий код работает, но я бы хотел избежать предупреждения: предупреждение: 'fitness :: vect_' следует инициализировать в списке инициализации членов [-Weffc ++] когда он скомпилирован с переключателем g++ -Weffc++ : #include...
1855 просмотров
schedule 17.03.2022

Избегайте универсальных ссылок в правильной реализации статьи Скотта Мейера «Более эффективный C++», пункт 22. Рассмотрите возможность использования op= вместо автономной операции?
Я пытаюсь следовать совету Скотта Мейерса в пункте 22 книги «Более эффективный C++»: «Рассмотрите возможность использования op= вместо автономного op ». Он предлагает создать шаблон для operator+ , чтобы все классы, реализующие operator+= ,...
318 просмотров

static_cast унаследовал этот объект от базового класса в C++
При чтении статьи 27 "Минимизируйте приведение в Effective C++ " говорится, что не пытайтесь использовать static_cast для приведения *this в производном классе к базовому классу. Это потому, что static_cast<Base>(*this) создаст...
3976 просмотров