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

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

4
Як читати двійковий файл у вектор без підписаних символів
Нещодавно мене попросили написати функцію, яка зчитує двійковий файл у std::vector<BYTE>де BYTEє unsigned char. Досить швидко я прийшов з приблизно таким: #include <fstream> #include <vector> typedef unsigned char BYTE; std::vector<BYTE> readFile(const char* filename) { // open the file: std::streampos fileSize; std::ifstream file(filename, std::ios::binary); // get its size: file.seekg(0, std::ios::end); fileSize …

5
Вбудована функція члена C ++ у файлі .cpp
Я знаю, що вбудовані функції члена за визначенням повинні йти в заголовок. Але що, якщо неможливо помістити реалізацію функції в заголовок? Візьмемо таку ситуацію: Файл Ах #pragma once #include "B.h" class A{ B b; }; Файл Bh #pragma once class A; //forward declaration class B{ inline A getA(); }; Завдяки …
76 c++  function  inline  member 

6
Що таке міксини (як концепція)
Я намагаюся зрозуміти концепцію Mixin, але, здається, я не можу зрозуміти, що це таке. Я бачу це так, що це спосіб розширити можливості класу за допомогою спадкування. Я читав, що люди називають їх "абстрактними підкласами". Хтось може пояснити, чому? Буду вдячний, якщо б ви пояснили свою відповідь на наступному прикладі …
76 c++  oop  templates  mixins 

4
Чому std :: strstream застаріло?
Нещодавно я виявив, що std::strstreamце застаріло на користь std::stringstream. Минув деякий час з того часу, як я ним користувався, але він зробив те, що мені потрібно було робити в той час, тому був здивований, почувши про його припинення. Моє питання полягає в тому, чому було прийнято це рішення, і які …

23
Чому б не використовувати покажчики для всього в C ++?
Припустимо, що я визначив якийсь клас: class Pixel { public: Pixel(){ x=0; y=0;}; int x; int y; } Потім напишіть код, використовуючи його. Чому я повинен робити наступне? Pixel p; p.x = 2; p.y = 5; Виходячи зі світу Java, я завжди пишу: Pixel* p = new Pixel(); p->x = …
75 c++  pointers  stack  heap 


5
Тип повернення лямбди може бути виведений за значенням, що повертається, то чому не може функція?
#include <iostream> int main(){ auto lambda = [] { return 7; }; std::cout << lambda() << '\n'; } Ця програма компілює та друкує 7. Тип повернення лямбда виводиться до цілочисельного типу на основі поверненого значення 7. Чому це неможливо зі звичайними функціями? #include <iostream> auto function(){ return 42; } int …
75 c++  function  c++11  lambda  auto 

9
Корисні надбудови або плагіни для власного розробника Visual Studio [закрито]
Зачинено. Це питання не відповідає вимогам щодо переповнення стека . Наразі відповіді не приймаються. Хочете покращити це питання? Оновіть питання, щоб воно було актуальним для переповнення стека. Закрито 6 років тому . Удосконалюйте це питання Існує безліч різних надбудов для Visual Studio, див. Visual Studio Gallery . Будь ласка, поділіться …

3
Використання std :: max_element на векторі <double>
Я намагаюся використовувати std::min_elementі std::max_elementповернути елементи min і max у векторі подвійних. Моєму компілятору не подобається, як я зараз намагаюся їх використовувати, і я не розумію повідомлення про помилку. Звичайно, я міг би написати власну процедуру, щоб знайти мінімум / максимум, але я хотів би зрозуміти, як використовувати функції. #include …
75 c++  vector  max  min 


7
Різниця між uint8_t, uint_fast8_t та uint_least8_t
Стандарт C99 представляє такі типи даних. Документацію можна знайти тут для бібліотеки stdint AVR. uint8_t означає, що це 8-бітний тип без підпису. uint_fast8_t означає, що це найшвидший непідписаний int з принаймні 8 бітами. uint_least8_t означає, що це беззнаковий int з принаймні 8 бітами. Я розумію, uint8_tщо таке uint_fast8_t(я не знаю, …
75 c++  c  integer  avr  c99 

12
RAII проти збирача сміття
Нещодавно я дивився чудову розмову Herb Sutter про "Leak Free C ++ ..." на CppCon 2016, де він розповів про використання розумних покажчиків для реалізації RAII (залучення ресурсів є ініціалізацією) - Концепції та те, як вони вирішують більшість проблем з витоками пам'яті. Тепер мені було цікаво. Якщо я суворо дотримуюсь …

1
Тип `this` у статичній функції-члена?
У C ++ 5.1.1 / 3 [expr.prim.general] сказано: Тип і категорія значень [of this] визначаються в рамках статичної функції-члена. Що це означає? Як це актуально? Зверніть увагу, що: this не повинен відображатися в оголошенні статичної функції-члена


9
Поради щодо просторів імен на C ++
Я просто навчаю себе просторам імен C ++ (що походять із фону C #) і справді починаю думати, що навіть незважаючи на те, що C ++ робить краще, ніж більшість інших мов, вкладені простори імен - не один з них! Чи правильно я вважаю, що для того, щоб оголосити деякі …
75 c++  namespaces 

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