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

Вопросы о C ++, статически типизированной, свободной форме, мультипарадигме, скомпилированном языке программирования общего назначения.

6
Встроенные функции в C ++. В чем смысл?
Согласно тому, что я прочитал, компилятор не обязан заменять вызов функции встроенной функции своим телом, но сделает это, если сможет. Это заставило меня задуматься - почему у нас есть встроенное слово, если это так? Почему бы не сделать все функции встроенными по умолчанию и позволить компилятору выяснить, может ли он …

1
Почему двойная двоеточие вместо точки?
Он , по слухам , что в начале C ++ реализация имела точечный оператор для доступа пространства имен. Существует мнение, что точка более удобна, чем современный оператор с двойным двоеточием. Что послужило причиной введения двойного двоеточия?

7
Проблема стиля кодирования: должны ли мы иметь функции, которые принимают параметр, модифицируют его, а затем возвращают этот параметр?
Я немного спорю с моим другом о том, являются ли эти две практики просто двумя сторонами одной медали, или же одна из них действительно лучше. У нас есть функция, которая принимает параметр, заполняет его член и затем возвращает его: Item predictPrice(Item item) Я считаю, что, поскольку он работает с тем …

4
Понимание стека кадра вызова функции в C / C ++?
Я пытаюсь понять, как строятся стековые фреймы и какие переменные (параметры) помещаются в стек в каком порядке? Некоторые результаты поиска показали, что компилятор C / C ++ принимает решение на основе операций, выполняемых внутри функции. Например, если функция должна была просто увеличить переданное значение int на 1 (аналогично оператору ++) …
19 c++  c  compiler  stack 

8
C ++ другу или не другу
В этом семестре в колледже у меня есть объектно-ориентированное программирование с курсом c ++, и мы изучали функции друзей. Мне инстинктивно не нравится их способность обходить безопасность, которую обеспечивают Encapsulation и скрытие данных, я прочитал несколько статей в Интернете, и некоторые люди думали, что это было хорошей идеей с некоторыми …

8
Вы читаете ошибки компиляции C или C ++ после первой?
Я никогда не понимал, почему компиляторы C и C ++ пытаются восстановиться после ошибок и продолжают анализ. Почти всегда первая ошибка генерирует поток фиктивных ошибок, которые исчезнут, как только будет исправлена ​​первая. После нескольких лет опыта я просто перестал искать любую ошибку, кроме первой в каждом файле. Я перезапускаю компилятор, …

7
Что такое идиоматика?
Я понимаю, что «идиома» - это обычная операция или шаблон, который на определенном языке не упрощается синтаксисом основного языка, например, целочисленным шагом: i = i + 1; В C ++ эта идиома упрощается оператором: ++i; Однако, когда кто-то использует термин «идиоматический», я не уверен, как это понимать. Что делает кусок …
19 c++  idioms 

7
Зачем нам нужно включать .h, пока все работает, когда включен только файл .cpp?
Почему нам нужно включать .hи .cppфайлы, и файлы, в то время как мы можем заставить работать только .cppфайлы? Например: создание file.hсодержащих объявлений, затем создание file.cppсодержащих определений и включение обоих в main.cpp. Альтернативно: создание file.cppсодержащей декларации / определений (без прототипов), включая их в main.cpp. Оба работают на меня. Я не вижу …
18 c++  c  headers  linking  include 

2
Почему C так высоко в индексе популярности TIOBE, а C ++ тоже здесь, но не так популярен? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

8
Почему книги говорят: «Компилятор выделяет пространство для переменных в памяти»?
Почему книги говорят: «Компилятор выделяет пространство для переменных в памяти». Разве это не исполняемый файл, который делает это? Я имею в виду, например, если я напишу следующую программу, #include <iostream> using namespace std; int main() { int foo; return 0; } и скомпилировать его, и получить исполняемый файл (пусть это …
18 c++ 

5
Почему я вижу так много экземпляров классов без состояния?
Я вижу множество инстанцируемых классов в мире C ++ и Java, которые не имеют никакого состояния. Я действительно не могу понять, почему люди делают это, они могут просто использовать пространство имен со свободными функциями в C ++ или класс с закрытым конструктором и только статические методы в Java. Единственное преимущество, …

3
Почему оператор стрелки в C ++ не является псевдонимом *.?
В c ++ оператор * может быть перегружен, например, с помощью итератора, но оператор стрелки (->) (. *) Не работает с классами, которые перегружают оператор *. Я полагаю, что препроцессор может легко заменить все экземпляры -> на (* left) .right, и это сделает итераторы более привлекательными для реализации. Есть ли …
18 c++  operators 

8
Есть ли язык между C и C ++?
Мне действительно нравится простая и прозрачная природа C: когда я пишу код на C, я чувствую себя свободным от «утечек абстракций» и почти всегда могу сделать хитрое предположение о сборке, которую я создаю. Мне также нравится простой, знакомый синтаксис для C. Тем не менее, в C нет таких простых, полезных …
18 c++  c 

3
Преимущества синтаксиса языка слева направо
Я смотрел интервью с Хербом Саттером на канале 9, и он упомянул в конце видео, что синтаксис языка слева направо будет в его списке желаний для будущего стандарта C ++ (хотя он признает, что изменение C ++ таким образом в значительной степени сделал бы для совершенно другого зверя). Помимо: более …

10
Почему наследование и полиморфизм так широко используются?
Чем больше я узнаю о различных парадигмах программирования, таких как функциональное программирование, тем больше начинаю сомневаться в разумности таких концепций ООП, как наследование и полиморфизм. Я впервые узнал о наследовании и полиморфизме в школе, и в то время полиморфизм казался прекрасным способом написания универсального кода, который позволял легко расширяться. Но …

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