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

Забезпечує спільне редагування питань C ++, що редагуються спільнотою


7
Різні результати з плаваючою комою з увімкненою оптимізацією - помилка компілятора?
Наведений нижче код працює на Visual Studio 2008 з оптимізацією та без неї. Але він працює лише на g ++ без оптимізації (O0). #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow; //std::cout << "t:" << …
109 c++  optimization  g++  c++-faq 

4
Що таке прозорі компаратори?
У C ++ 14 асоціативні контейнери, схоже, змінилися від C ++ 11 - [Associative.reqmts] / 13 говорить: Шаблони функцій - членів find, count, lower_bound, upper_bound, і equal_rangeне повинен брати участь у вирішенні перевантаження , якщо тип Compare::is_transparentне існує. Яка мета зробити компаратор «прозорим»? C ++ 14 також пропонує такі шаблони …
106 c++  c++14  c++-faq 

3
Чому std :: getline () пропускає введення після форматованого вилучення?
У мене є такий код, який спонукає користувача до їх імені та штату: #include <iostream> #include <string> int main() { std::string name; std::string state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your name is " << name << " and you live in " << state; } …
105 c++  input  iostream  istream  c++-faq 

3
Чому проста програма «Hello World» у стилі не компілюється з Turbo C ++?
Я почав вивчати C ++ для свого класу програмування. Я завантажив цю програму "Hello World": #include <iostream> using namespace std; int main() { cout << "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 

4
Яка правильна відповідь на cout << a ++ << a ;?
Нещодавно в інтерв'ю з'явилося таке об'єктивне питання типу. int a = 0; cout &lt;&lt; a++ &lt;&lt; a; Відповіді: а. 10 б. 01 c. невизначена поведінка Я відповів на вибір b, тобто вихід буде "01". Але на мій подив пізніше мені інтерв'ю сказав, що правильна відповідь - це варіант c: undefined. …
98 c++  c++-faq 

17
У чому сенс покажчиків на функції?
У мене проблеми з переглядом корисності покажчиків на функції. Я думаю, це може бути корисним у деяких випадках (зрештою, вони існують), але я не можу подумати про випадок, коли краще або неминуче використовувати покажчик функції. Не могли б ви навести якийсь приклад хорошого використання покажчиків на функції (на C або …
94 c++  c  function  pointers  c++-faq 

16
Найкращі практики для операцій кругового зсуву (обертання) в C ++
Оператори лівого та правого зсуву (&lt;&lt; і &gt;&gt;) вже доступні в C ++. Однак я не міг дізнатись, як я можу виконувати операції кругового зсуву або обертання. Як можна виконувати такі операції, як "Повернути вліво" та "Повернути вправо"? Тут обертається двічі вправо Initial --&gt; 1000 0011 0100 0010 має призвести …

2
Функція з тим самим іменем, але різним підписом у похідному класі
У мене є функція з тим самим іменем, але з різним підписом у базовому та похідних класах. Коли я намагаюся використовувати функцію базового класу в іншому класі, який успадковується від похідного, я отримую повідомлення про помилку. Дивіться наступний код: class A { public: void foo(string s){}; }; class B : …

2
Коли зайві дужки впливають, крім переваги оператора?
Дужки в C ++ використовуються в багатьох місцях: наприклад, у викликах функцій та групуванні виразів, щоб замінити пріоритет оператора. Окрім незаконних зайвих дужок (наприклад, навколо списків аргументів викликів функцій), загальним, але не абсолютним правилом С ++ є те, що зайві дужки ніколи не зашкодять : 5.1 Первинні вирази [expr.prim] 5.1.1 …

3
Що саме є правилом “як би”?
Як сказано в назві, Що саме є правилом "як би"? Типова відповідь, яку можна отримати: Правило, яке допускає будь-які перетворення коду, які не змінюють спостережувану поведінку програми Час від часу ми постійно отримуємо поведінку від певних реалізацій, які приписуються цьому правилу. Багато разів помилково. Отже, яке саме це правило. Стандарт …
89 c++  c  optimization  c++-faq  as-if 

5
Передача спільних покажчиків як аргументів
Якщо я оголошую об'єкт, загорнутий у спільний вказівник: std::shared_ptr&lt;myClass&gt; myClassObject(new myClass()); тоді я хотів передати це як аргумент методу: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr&lt;myClass&gt; arg1) { arg1-&gt;someField = 4; } Чи вищезгадане просто збільшує кількість посилань на shared_pt, і все круто? Або це залишає звисаючий вказівник? Ви все ще …

3
Конструктор копіювання та = перевантаження оператора в C ++: чи можлива загальна функція?
Так як конструктор копій MyClass(const MyClass&amp;); та перевантаження оператора = MyClass&amp; operator = (const MyClass&amp;); мають майже однаковий код, той самий параметр і різняться лише при поверненні, чи можна мати спільну функцію для обох?

1
Що таке посібники з вирахування шаблонів і коли ми повинні ними користуватися?
Стандарт C ++ 17 вводить "посібники з вирахування шаблонів". Я вважаю, що вони мають щось спільне з новим вирахуванням аргументу шаблону для конструкторів, представленим у цій версії стандарту, але я ще не бачив простого пояснення щодо того, для чого вони потрібні, у стилі поширених запитань. Що таке посібники з вирахування …

1
gcc / g ++: “Немає такого файлу чи каталогу”
g++ видає мені помилки у формі: foo.cc:&lt;line&gt;:&lt;column&gt;: fatal error: &lt;bar&gt;: No such file or directory compilation terminated. Це те саме при складанні C-програм з gcc. Чому так? Зверніть увагу: це запитання вже задавали багато разів, але кожного разу воно було специфічним для ситуації, що вимагала запитання. Мета цього запитання - …
87 c++  c  gcc  g++  c++-faq 

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