c++
многие языки, такие как Java, C#, не отделяют объявление от реализации. C# имеет понятие частичного класса, но реализация и объявление все еще остаются в том же файле. Почему C++ не имеет той же модели? Это более практично иметь заголовочные файлы? Я имею в виду текущие и будущие версии стандарта C++. ...
Я пытаюсь понять, почему следующий код не работает, и я предполагаю, что это проблема с использованием char* в качестве типа ключа, однако я не уверен, как я могу решить это и почему это происходит. Все другие функции, которые я использую (в HL2 SDK) использовать char* используя std::string будет вызывать мно...
У меня есть класс, который содержит функцию "ошибки", которые форматируют текст. Я хочу принять переменное количество аргументов, а затем отформатировать их с помощью printf. пример: class MyClass { public: void Error(const char* format, ...); }; метод ошибки должен принимать параметры, вызывать prin...
согласно Скотту Мейерсу, в его эффективной книге STL - пункт 46. Он утверждал, что std::sort примерно на 670% быстрее, чем std::qsort из-за того, инлайн. Я проверил себя, и я увидел, что qsort быстрее : (! Может кто поможет мне объяснить это странное поведение? #include <iostream> #include <vector&...
у меня есть класс, который адаптирует std::vector для моделирования контейнера доменных объектов. Я хочу предоставить большую часть API std::vector пользователю, чтобы он мог использовать знакомые методы (size, clear, at и т. д...) и стандартные алгоритмы на контейнере. Это, кажется, повторяющийся шаблон для ...
пункт 18 книги Скотта Мейерса эффективный STL: 50 конкретных способов улучшить использование стандартной библиотеки шаблонов он говорит, чтобы избежать vector <bool> поскольку это не контейнер STL, и он действительно не содержит bools. следующий код: vector <bool> v; bool *pb =&v[0]; не б...
я хочу создать std::set С пользовательской функцией сравнения. Я мог бы определить его как класс operator(), но я хотел наслаждаться возможностью определить лямбда, где он используется, поэтому я решил определить лямбда-функцию в списке инициализации конструктора класса, который имеет std::set как участник. Н...
Допустим у нас есть шаблон класса Area, который имеет переменную-член T area, a T getArea() и void setArea(T) функции-члены. я могу создать Area объект определенного типа, набрав Area<int>. теперь у меня есть класс Rectangle унаследовала Area класса. Так как Rectangle сам по себе не шаблон, я не могу ...
2 допустимые версии на C++: int main() // version 1 int main(int argc, char **argv) // version 2 но обе перегрузки не могут сосуществовать одновременно. Почему бы и нет? (Потенциальный вариант использования: при запуске программы с терминала, если аргументы не передаются первая версия вызывается, в прот...
я заметил, что некоторые люди используют следующие обозначения для объявления переменных указатель. (a) char* p; вместо (b) char *p; я использую (b). Что является рациональным за обозначением (А)? Нотация (b) имеет для меня больше смысла, потому что указатель символов сам по себе не является типом. Вме...