c++ — вопросы с ответами

6 ответов
Я знаю, что "неопределенное поведение" в C++ может позволить компилятору делать все, что он хочет. Однако у меня произошел сбой, который удивил меня, так как я предположил, что код был достаточно безопасным. В этом случае настоящая проблема возникла только на конкретной платформе, использующей опр...
abi
undefined-behavior
llvm
10 янв. 2019, в 01:40
14 ответов
Сколько указателей (*) разрешено в одной переменной? Рассмотрим следующий пример. int a = 10; int *p = &a; Аналогично мы можем иметь int **q = &p; int ***r = &q; и т.д. Например, int ****************zz;
pointers
10 апр. 2012, в 10:32
5 ответов
Содержимое файла file.txt: 5 3 6 4 7 1 10 5 11 6 12 3 12 4 Где 5 3 - координатная пара. Как обрабатывать эти данные по строкам в С++? Я могу получить первую строку, но как получить следующую строку файла? ofstream myfile; myfile.open ("text.txt");
file-io
ofstream
23 окт. 2011, в 22:11
5 ответов
С++ унаследованные массивы из C, где они используются практически везде. С++ предоставляет абстракции, которые легче использовать и менее подвержены ошибкам (std::vector<T>с С++ 98 и std::array<T, n>, поскольку C++11), поэтому необходимость в массивах возникает не так часто, как в C. Одн...
arrays
multidimensional-array
pointers
c++-faq
26 янв. 2011, в 22:06
24 ответа
Есть ли способ узнать, сколько значений имеет массив? Обнаружение того, достигло ли я конца массива, также будет работать.
arrays
05 нояб. 2010, в 15:26
7 ответов
В чем разница между статическими и разделяемыми библиотеками? Я использую Eclipse и существует несколько типов проектов, включая Static Libraries и Shared Libraries? Имеет ли преимущество преимущество над другим?
static-libraries
shared-libraries
15 апр. 2010, в 22:48
12 ответов
Когда следует писать ключевое слово inline для функции/метода в С++? После просмотра некоторых ответов некоторые связанные вопросы: Когда я должен не писать ключевое слово 'inline' для функции/метода в С++? Когда компилятор не знает, когда нужно сделать функцию/метод 'inline'? Имеет ли значение,...
inline
one-definition-rule
18 нояб. 2009, в 22:26
22 ответа
Как объявить массив 2d с помощью нового? Например, для "нормального" массива я бы: int* ary = new int[Size] но int** ary = new int[sizeY][sizeX] a) не работает/компилируется и b) не выполняет что: int ary[sizeY][sizeX] делает.
arrays
multidimensional-array
dynamic-allocation
01 июнь 2009, в 22:15
9 ответов
Я разрабатываю приложение командной строки С++ в Visual Studio и вам нужно отлаживать его с помощью аргументов командной строки. На данный момент я просто запускаю сгенерированный EXE файл с необходимыми аргументами (например, этот program.exe -file.txt), но таким образом я не могу отлаживать. Я мог...
visual-studio
debugging
command-line
18 нояб. 2008, в 12:15
23 ответа
Можно ли написать шаблон, который изменяет поведение в зависимости от того, определена ли определенная функция-член в классе? Вот простой пример того, что я хотел бы написать: template<class T> std::string optionalToString(T* obj) { if (FUNCTION_EXISTS(T->toString)) return obj-&...
templates
template-meta-programming
sfinae
02 нояб. 2008, в 20:37
17 ответов
Каков наилучший способ инициализации частного статического члена данных в C++? Я пробовал это в своем заголовочном файле, но это дает мне странные ошибки компоновщика: class foo { private: static int i; }; int foo::i = 0; Я предполагаю, что это связано с тем, что я не могу инициализи...
initialization
static-members
09 окт. 2008, в 03:15
19 ответов
Я вижу, что в С++ существует несколько способов выделения и освобождения данных, и я понимаю, что при вызове malloc вы должны называть free, а когда вы используете оператор new, вы должны соединить с delete, и это (например, вызов free() на то, что было создано с помощью оператора new), но я не пони...
malloc
memory-management
new-operator
08 окт. 2008, в 20:14
23 ответа
Этот вопрос может звучать довольно элементарно, но это дискуссия, с которой я работал с другим разработчиком, с которым я работаю. Я старался, чтобы стек выделял вещи, где мог, вместо кучи, выделяя их. Он разговаривал со мной и наблюдал за моим плечом и прокомментировал, что это не обязательно, пото...
performance
memory
stack
heap
02 окт. 2008, в 05:35
10 ответов
Особенностью С++ является возможность создания неназванных (анонимных) пространств имен, например: namespace { int cannotAccessOutsideThisFile() { ... } } // namespace Вы считаете, что такая функция будет бесполезной - поскольку вы не можете указать имя пространства имен, невозможно получить до...
namespaces
30 сен. 2008, в 19:41
8 ответов
Я замечаю, что современный код на C и С++ использует size_t вместо int/unsigned int почти везде - от параметров для строковых функций C до STL. Мне интересно узнать причину этого и преимущества, которые он приносит.
size-t
25 сен. 2008, в 07:34
Наверх
Меню