Вопросы по теме 'effective-c++'
Прямое объявление include поверх объявления include (ClassFwd.h + Class.h)
В «Эффективном C ++» (3-е издание) Скотт Мейерс в правиле 31 предлагает, чтобы классы помимо классических файлов объявлений (.h) и определений (.cpp) имели файл включения прямого объявления (fwd.h), какой класс, не нуждающийся в полном определении,...
2843 просмотров
schedule
22.09.2022
Функциональные макросы и странное поведение
Я начал читать «Эффективный 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 просмотров
schedule
29.09.2023
static_cast унаследовал этот объект от базового класса в C++
При чтении статьи 27 "Минимизируйте приведение в Effective C++ " говорится, что не пытайтесь использовать static_cast для приведения *this в производном классе к базовому классу. Это потому, что static_cast<Base>(*this) создаст...
3976 просмотров
schedule
23.07.2023