Запитання з тегом «c++»

C ++ - мова програмування загального призначення. Спочатку він був розроблений як розширення до C і має подібний синтаксис, але зараз це зовсім інша мова. Використовуйте цей тег для запитань про код (який потрібно) зібрати за допомогою компілятора C ++. Використовуйте тег, що стосується версії, для питань, пов’язаних із конкретною стандартною редакцією [C ++ 11], [C ++ 14], [C ++ 17] або [C ++ 20] тощо.

7
Чи успадковуються статичні поля?
Коли статичні члени успадковуються, чи є вони статичними для всієї ієрархії чи просто для цього класу, тобто: class SomeClass { public: SomeClass(){total++;} static int total; }; class SomeDerivedClass: public SomeClass { public: SomeDerivedClass(){total++;} }; int main() { SomeClass A; SomeClass B; SomeDerivedClass C; return 0; } загалом було б 3 …
102 c++  inheritance  static 

2
C ++ 0x захоплення лямбда за значенням завжди const?
Чи є спосіб зафіксувати значення і зробити захоплене значення не const? У мене є функціонер бібліотеки, який я хотів би захопити і викликати метод, який не є const, але повинен бути. Далі не компілюється, але примушує його виправити foo :: operator () const. struct foo { bool operator () ( …
102 c++  lambda  const  c++11 

2
Чи можу я викликати memcpy () та memmove () з "кількістю байтів", встановлених на нуль?
Чи потрібно мені ставитися до випадків, коли мені фактично нічого рухати / копіювати з memmove()/ memcpy()як крайові випадки int numberOfBytes = ... if( numberOfBytes != 0 ) { memmove( dest, source, numberOfBytes ); } або я повинен просто викликати функцію без перевірки int numberOfBytes = ... memmove( dest, source, numberOfBytes …
102 c++  c  pointers  memcpy  memmove 

4
Чи можлива нульова посилання?
Чи дійсний цей фрагмент коду (та визначена поведінка)? int &nullReference = *(int*)0; Обидва г ++ і брязкіт ++ компіляція без якого - або попередження, навіть при використанні -Wall, -Wextra, -std=c++98, -pedantic, -Weffc++... Звичайно, посилання насправді не є нульовим, оскільки до нього не можна отримати доступ (це означатиме перенаправлення нульового вказівника), …

3
Передача спільних_ptr <Base> на shared_ptr <Похідне>?
Оновлення: shared_ptr у цьому прикладі схожий на той, що в Boost, але він не підтримує shared_polymorphic_downcast (або динамічний_pointer_cast або static_pointer_cast для цього питання)! Я намагаюся ініціалізувати спільний покажчик до похідного класу, не втрачаючи підрахунку: struct Base { }; struct Derived : public Base { }; shared_ptr&lt;Base&gt; base(new Base()); shared_ptr&lt;Derived&gt; derived; …
102 c++  gcc  boost 

6
рядок c_str () проти даних ()
Я прочитав кілька місць про те, що різниця між c_str()і data()(в STL та інших реалізаціях) полягає в тому, що c_str()завжди нульове припинення, а data()ні. Наскільки я бачив у фактичних реалізаціях, вони або роблять те саме, або data()викликають c_str(). Що я тут пропускаю? Який правильніше використовувати в яких сценаріях?
102 c++  stl  c-str 

1
Зображення в ASCII перетворення мистецтв
Пролог Ця тема час від часу з’являється на переповнюванні стека, але вона видаляється, як правило, через неякісне запитання. Я бачив багато таких питань, а потім мовчав від ОП (звичайно низький реп.), Коли вимагається додаткова інформація. Час від часу, якщо вхід для мене достатньо хороший, я вирішу відповісти відповіддю, і він, …

2
Яка механіка оптимізації коротких струн у libc ++?
Ця відповідь дає хороший огляд високого рівня оптимізації коротких рядків (SSO). Однак я хотів би більш детально дізнатися, як це працює на практиці, зокрема в реалізації libc ++: Наскільки короткою повинна бути рядок, щоб мати право на отримання SSO? Це залежить від цільової архітектури? Як реалізація розрізняє короткі та довгі …

4
Використання бібліотеки C ++ у коді С
У мене є бібліотека C ++, яка пропонує різні класи для управління даними. У мене є вихідний код для бібліотеки. Я хочу розширити API C ++ на підтримку викликів функцій C, щоб бібліотека могла одночасно використовуватися з кодом C та кодом C ++. Я використовую ланцюжок інструментів GNU (gcc, glibc …
102 c++  c  gcc  glibc 

8
Чи є “argv [0] = назва виконуваного файлу” прийнятим стандартом чи просто загальноприйнятою умовою?
При передачі аргументу main()в програму C або C ++, argv[0]завжди буде ім’я виконуваного файлу? Або це просто загальноприйнята конвенція і не гарантується, що це буде правдою у 100% випадків?
102 c++  c  standards  argv 

16
Функція таймера, щоб забезпечити час у наносекундах за допомогою C ++
Я хочу обчислити час, який потрібно API, щоб повернути значення. Час, необхідний для такої дії, знаходиться в просторі наносекунд. Оскільки API - це клас / функція C ++, я використовую timer.h для того, щоб зробити те ж саме: #include &lt;ctime&gt; #include &lt;cstdio&gt; using namespace std; int main(int argc, char** argv) …
101 c++  c  timer 

3
Чи є gcc 4.8 або попередні помилки щодо регулярних виразів?
Я намагаюся використовувати std :: regex у коді C ++ 11, але виявляється, що підтримка трохи помиляється. Приклад: #include &lt;regex&gt; #include &lt;iostream&gt; int main (int argc, const char * argv[]) { std::regex r("st|mt|tr"); std::cerr &lt;&lt; "st|mt|tr" &lt;&lt; " matches st? " &lt;&lt; std::regex_match("st", r) &lt;&lt; std::endl; std::cerr &lt;&lt; "st|mt|tr" &lt;&lt; …
101 c++  regex  gcc  c++11  libstdc++ 

3
Чому проста програма «Hello World» у стилі не компілюється з Turbo C ++?
Я почав вивчати C ++ для свого класу програмування. Я завантажив цю програму "Hello World": #include &lt;iostream&gt; using namespace std; int main() { cout &lt;&lt; "Hello, World!"; return 0; } але Turbo C ++ скаржиться: Error D:\HELLO.CPP 1: Unable to open include file 'IOSTREAM' Error D:\HELLO.CPP 2: Declaration syntax error …
101 c++  turbo-c++  c++-faq 

8
Чи існує клас діапазону в C ++ 11 для використання з діапазоном на основі циклів?
Я нещодавно написав це: template &lt;long int T_begin, long int T_end&gt; class range_class { public: class iterator { friend class range_class; public: long int operator *() const { return i_; } const iterator &amp;operator ++() { ++i_; return *this; } iterator operator ++(int) { iterator copy(*this); ++i_; return copy; } …
101 c++  c++11  std 

14
Який найкращий спосіб зробити зворотний цикл у C / C # / C ++?
Мені потрібно рухатись назад через масив, тому у мене є такий код: for (int i = myArray.Length - 1; i &gt;= 0; i--) { // Do something myArray[i] = 42; } Чи є кращий спосіб зробити це? Оновлення: Я сподівався, що, можливо, у C # є якийсь вбудований механізм для …
101 c#  c++  c 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.