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

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


5
Чи продовжує член референтного класу const життя тимчасового?
Чому так: #include <string> #include <iostream> using namespace std; class Sandbox { public: Sandbox(const string& n) : member(n) {} const string& member; }; int main() { Sandbox sandbox(string("four")); cout << "The answer is: " << sandbox.member << endl; return 0; } Дайте вихід: Відповідь: Замість: Відповідь: чотири

13
В C ++ я плачу за те, що не їмо?
Розглянемо наступні привітні світові приклади в C і C ++: main.c #include <stdio.h> int main() { printf("Hello world\n"); return 0; } main.cpp #include <iostream> int main() { std::cout<<"Hello world"<<std::endl; return 0; } Коли я компілюю їх у godbolt для складання, розмір коду С становить лише 9 рядків ( gcc -O3): …
170 c++  c 


5
Як я можу надійно отримати адресу об’єкта, коли оператор & перевантажений?
Розглянемо наступну програму: struct ghost { // ghosts like to pretend that they don't exist ghost* operator&() const volatile { return 0; } }; int main() { ghost clyde; ghost* clydes_address = &clyde; // darn; that's not clyde's address :'( } Як мені отримати clydeадресу? Я шукаю рішення, яке буде …

6
Чи вводить C ++ 11, 14, 17 або 20 стандартну константу для pi?
Існує досить нерозумна проблема з числом pi в C і C ++. Наскільки я знаю, M_PIвизначений в math.hне вимагається жодним стандартом. Нові стандарти C ++ ввели в складну бібліотеку багато складної математики - гіперболічні функції, std::hermiteа також std::cyl_bessel_iрізні генератори випадкових чисел тощо і так далі. Чи вводив якийсь із "нових" …

15
Що означає порожнеча в C, C ++ та C #?
Шукаємо основи того, звідки походить термін " недійсність " і чому його називають недійсним. Намір питання полягає в тому, щоб допомогти тому, хто не має досвіду роботи з C, і раптом дивиться на кодову базу на основі С.


4
Чи слід додати .vcxproj.filter файли до керування джерелом?
При оцінці Visual Studio 2010 Beta 2, я бачу , що в реформованій директорії, мої vcproj файли стали vcxproj файлів. Поряд з кожним проектом є також файли vcxproj.filter, які, як видається, містять опис структури папок (\ вихідні файли, \ файли заголовків тощо). Як ви вважаєте, ці файли фільтрів повинні зберігатися …

1
Швидкий метод округлення дубля до 32-бітного int пояснив
Читаючи вихідний код Lua , я помітив, що Lua використовує a macroдля округлення a doubleдо 32-бітового int. Я витяг macro, і це виглядає приблизно так: union i_cast {double d; int i[2]}; #define double2int(i, d, t) \ {volatile union i_cast u; u.d = (d) + 6755399441055744.0; \ (i) = (t)u.i[ENDIANLOC];} Тут …


2
функція члена публічного обміну товаришами
У гарній відповіді на ідіому copy-and-swap є фрагмент коду, мені потрібна трохи допомога: class dumb_array { public: // ... friend void swap(dumb_array& first, dumb_array& second) // nothrow { using std::swap; swap(first.mSize, second.mSize); swap(first.mArray, second.mArray); } // ... }; і він додає записку Є й інші твердження, що ми повинні спеціалізуватися …

6
Використання загальних об’єктів std :: function з функціями-членами в одному класі
Для одного класу я хочу зберегти деякі покажчики функцій на функції-членів одного класу в одному об'єкті, що mapзберігає std::function. Але я не вдається відразу на цей код: class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function<void(void)> f = &Foo::doSomething; } }; Я отримую error C2064: term …

3
Чим "= default" відрізняється від "{}" для конструктора та деструктора за замовчуванням?
Спочатку я розміщував це як питання лише про деструктори, але тепер додаю розгляд конструктора за замовчуванням. Ось оригінальне запитання: Якщо я хочу дати своєму класу деструктор, який є віртуальним, але інакше такий же, як і генерував компілятор, я можу використовувати =default: class Widget { public: virtual ~Widget() = default; }; …

8
Розділення коду класу на заголовок та файл cpp
Мене бентежить, як розділити код реалізації та декларації простого класу на новий заголовок та файл cpp. Наприклад, як би я розділив код для наступного класу? class A2DD { private: int gx; int gy; public: A2DD(int x,int y) { gx = x; gy = y; } int getSum() { return gx …
169 c++  oop  class 

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