Вопросы с тегом «c++»

C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который будет скомпилирован с помощью компилятора C ++). Используйте тег, зависящий от версии, для вопросов, связанных с конкретной редакцией стандарта [C ++ 11], [C ++ 14], [C ++ 17] или [C ++ 20] и т. Д.

9
Доступ к частному полю другого объекта в том же классе
class Person { private BankAccount account; Person(BankAccount account) { this.account = account; } public Person someMethod(Person person) { //Why accessing private field is possible? BankAccount a = person.account; } } Забудьте о дизайне. Я знаю, что ООП указывает, что частные объекты являются частными для класса. У меня вопрос: почему ООП …
91 java  c++  .net  oop 

8
Объявление функции внутри или вне класса
Я разработчик JAVA, который пытается изучить C ++, но я действительно не знаю, как лучше всего использовать стандартные объявления функций. В классе: class Clazz { public: void Fun1() { //do something } } Или снаружи: class Clazz { public: void Fun1(); } Clazz::Fun1(){ // Do something } Такое ощущение, что …
91 c++  inline 

11
Статический массив против динамического массива в C ++
В чем разница между статическим массивом и динамическим массивом в C ++? Я должен выполнить задание для своего класса, и в нем говорится, что нельзя использовать статические массивы, а только динамические массивы. Я искал в книге и в Интернете, но, кажется, не понимаю. Я думал, что статика была создана во …

3
Что означает LPCWSTR и как с этим обращаться?
Прежде всего, что это такое? Я предполагаю, что это указатель (LPC означает константу длинного указателя), но что означает "W"? Это конкретный указатель на строку или указатель на конкретную строку? Например, я хочу закрыть окно с именем «TestWindow». HWND g_hTest; LPCWSTR a; *a = ("TestWindow"); g_hTest = FindWindowEx(NULL, NULL, NULL, a); …
91 c++  winapi  lpcstr 

5
Нужно ли ВСЕ виртуальные функции реализовывать в производных классах?
Это может показаться простым вопросом, но я нигде не могу найти ответа. Предположим, у меня есть следующее: class Abstract { public: virtual void foo() = 0; virtual void bar(); } class Derived : Abstract { public: virtual void foo(); } Это нормально, что класс Derived не реализует функцию bar ()? …
91 c++  inheritance 

8
Как использовать CCache с CMake?
Я хотел бы сделать следующее: если CCache присутствует в PATH, используйте для компиляции "ccache g ++", иначе используйте g ++. Я попытался написать небольшой скрипт my-cmake, содержащий CC="ccache gcc" CXX="ccache g++" cmake $* но похоже, что это не работает (при запуске make по-прежнему не используется ccache; я проверил это с …
91 c++  unix  cmake  ccache 

2
GNU GCC (g ++): почему он генерирует несколько dtors?
Среда разработки: GNU GCC (g ++) 4.1.2 Пока я пытаюсь исследовать, как увеличить «покрытие кода - особенно покрытие функций» в модульном тестировании, я обнаружил, что некоторые из классов dtor, похоже, генерируются несколько раз. Кто-нибудь из вас знает почему, пожалуйста? Я попробовал и заметил то, что я упомянул выше, используя следующий …
91 c++  g++  destructor 

7
Когда статические переменные уровня функции выделяются / инициализируются?
Я вполне уверен, что глобально объявленные переменные выделяются (и инициализируются, если применимо) во время запуска программы. int globalgarbage; unsigned int anumber = 42; Но как насчет статических, определенных в функции? void doSomething() { static bool globalish = true; // ... } Когда выделяется место под globalish? Я догадываюсь, когда программа …
91 c++  variables 

10
оператор if - оценка короткого замыкания vs удобочитаемость
Иногда ifоператор может быть довольно сложным или длинным, поэтому для удобства чтения лучше извлекать сложные вызовы перед оператором if. например, это: if (SomeComplicatedFunctionCall() || OtherComplicatedFunctionCall()) { // do stuff } в это bool b1 = SomeComplicatedFunctionCall(); bool b2 = OtherComplicatedFunctionCall(); if (b1 || b2) { //do stuff } ( при …


12
В этом конкретном случае есть ли разница между использованием списка инициализаторов членов и присвоением значений в конструкторе?
Есть ли разница между внутренне и сгенерированным кодом: MyClass::MyClass(): _capacity(15), _data(NULL), _len(0) { } а также MyClass::MyClass() { _capacity=15; _data=NULL; _len=0 } Благодарность...

2
Что это (( ))?
Просматривая исходный код компилятора gcc (gcc / c-family / c-pragma.c), я вижу: typedef struct GTY(()) align_stack { int alignment; tree id; struct align_stack * prev; } align_stack; и, несмотря на то, что у меня за плечами много лет программирования на C, эти биты: (())мне еще полностью неизвестны. Может кто-нибудь объяснить, …
90 c++  c 

16
Я слышал, что i ++ не является потокобезопасным, а ++ i - потокобезопасным?
Я слышал, что i ++ не является потокобезопасным оператором, так как в сборке он сводится к сохранению исходного значения в качестве временного где-то, увеличению его, а затем замене, что может быть прервано переключением контекста. Однако меня интересует ++ i. Насколько я могу судить, это сократилось бы до одной инструкции сборки, …
90 c++  c  multithreading 

8
Как записывать веб-камеру и аудио с помощью webRTC и однорангового соединения на основе сервера
Я хочу записать пользовательскую веб-камеру и аудио и сохранить их в файл на сервере. Затем эти файлы можно будет передать другим пользователям. У меня нет проблем с воспроизведением, но у меня проблемы с записью контента. Насколько я понимаю, .record()функция getUserMedia еще не написана - пока для нее сделано только предложение. …


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.