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

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


5
Чи існує неатомний еквівалент std :: shared_ptr? І чому в <memory> його немає?
Це дещо із двох частин питання про атомність std::shared_ptr: 1. Наскільки я можу зрозуміти, std::shared_ptrце єдиний розумний вказівник, &lt;memory&gt;який є атомним. Мені цікаво, чи є доступна неатомна версія std::shared_ptr(я не бачу нічого &lt;memory&gt;, тому я також відкритий для пропозицій за межами стандарту, таких як Boost). Я знаю, що boost::shared_ptrце також …


5
C ++: Простори імен - Як правильно використовувати файли заголовків та джерел?
Розглянемо пару з двох вихідних файлів: файл декларації інтерфейсу ( *.hабо *.hpp) та файл його реалізації ( *.cpp). Нехай *.hфайл буде таким: namespace MyNamespace { class MyClass { public: int foo(); }; } Я бачив дві різні практики використання просторів імен у вихідних файлах: *.cpp показ практики №1: #include "MyClass.h" …

1
перетворення з похідного * на базовий * існує, але недоступне
Чому наступний код видає цю помилку, хоча c є структурою і має загальнодоступне успадкування за замовчуванням ?? struct c { protected: int i; public: c(int ii=0):i(ii){} virtual c *fun(); }; c* c::fun(){ cout&lt;&lt;"in c"; return &amp;c(); } class d : c { public: d(){} d* fun() { i = 9; …
88 c++  inheritance 

6
Як порівняти покажчики?
Припустимо, у мене є 2 вказівники: int *a = something; int *b = something; Якщо я хочу порівняти їх і подивитися, чи вказують вони на одне і те ж місце (a == b), працює?
88 c++  pointers 


4
C ++ авто та проти авто
Чи правильно застосовувати при створенні локальних змінних (const) auto&amp;чи auto? наприклад: SomeClass object; const auto result = object.SomeMethod(); або const auto&amp; result = object.SomeMethod(); Де SomeMethod () повертає непримітивне значення - можливо, інший визначений користувачем тип. Я розумію, що const auto&amp; resultце правильно, оскільки результат, повернутий SomeMethod (), викликав би …
88 c++  auto 

2
std :: ігнорувати зі структурованими прив'язками?
Прелюдія: std::tuple&lt;int, int, int&gt; f(); std::tuple&lt;int, int, float, int&gt; g(); C ++ 1z введе синтаксис для структурованих прив'язок, що дозволить писати замість int a, b, c; std::tie(a, b, c) = f(); щось на зразок auto [a, b, c] = f(); Однак std::tieтакож дозволено вказати std::ignoreігнорувати певні компоненти, наприклад: std::tie(a, b, …

8
оголошення prioritet_черепи в c ++ за допомогою спеціального компаратора
Я намагаюся оголосити a priority_queue of nodes, використовуючи bool Compare(Node a, Node b)як функцію порівняння (яка знаходиться поза класом вузла). На даний момент я маю: priority_queue&lt;Node, vector&lt;Node&gt;, Compare&gt; openSet; Чомусь я отримую Error: "Compare" is not a type name Зміна декларації на priority_queue &lt;Node, vector&lt;Node&gt;, bool Compare&gt; дає мені Error: …


14
прийоми затемнення чутливих рядків у C ++
Мені потрібно зберігати конфіденційну інформацію (симетричний ключ шифрування, який я хочу залишити приватним) у моїй програмі C ++. Простий підхід полягає в тому, щоб зробити це: std::string myKey = "mysupersupersecretpasswordthatyouwillneverguess"; Однак запуск програми через stringsпроцес (або будь-який інший, що витягує рядки з двійкового додатка), відкриє вказаний вище рядок. Які методи …

5
Що саме означає "Objective-C - надмножина C більш суворо, ніж C ++"?
З того, що я там читав: Чому Objective-C не дуже популярний поза спільнотою Apple? Objective-C - це надмножина C (насправді набагато суворіша, ніж C ++), тому проблема зворотної сумісності не виникає. Все, що ви можете зробити в C, ви можете зробити в Objective-C. Бути надмножиною - це бінарне, як вагітність. …
87 c++  objective-c  c 

10
Чому printf (“% f”, 0); дати невизначену поведінку?
Заява printf("%f\n",0.0f); відбитки 0. Однак заява printf("%f\n",0); друкує випадкові значення. Я усвідомлюю, що демонструю якусь невизначену поведінку, але не можу зрозуміти, чому саме. Значення з плаваючою комою, в якому всі біти дорівнюють 0, все ще є дійсним floatзі значенням 0. floatІ intмають однаковий розмір на моїй машині (якщо це навіть …

5
Які правильні варіанти посилання використовувати std :: thread у GCC під Linux?
Привіт, я намагаюся використовувати std::threadз G ++. Ось мій тестовий код #include &lt;thread&gt; #include &lt;iostream&gt; int main(int, char **){ std::thread tt([](){ std::cout&lt;&lt;"Thread!"&lt;&lt;std::endl; }); tt.join(); } Він компілюється, але коли я намагаюся запустити його, результат: terminate called after throwing an instance of 'std::system_error' what(): Operation not permitted Aborted Моя версія компілятора: …

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