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

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

3
Как вы справляетесь со все более длительным временем компиляции при работе с шаблонами?
Я использую Visual Studio 2012, и у него есть случаи, когда мы добавляли параметры шаблонов в класс «просто», чтобы ввести «точку шва», чтобы в модульном тесте мы могли заменить эти части на фиктивные объекты. Как вы обычно вводите точки стыка в C ++: используя интерфейсы и / или смешивание на …
13 c++  tdd  templates 

1
Поддержка C ++ 11 для функций списка высшего порядка
Большинство функциональных языков программирования (например , Common Lisp, Scheme / ракетки, Clojure, Haskell, Scala, Ocaml, SML) поддерживают некоторые общие функции высшего порядка в списках, такие как map, filter, takeWhile, dropWhile, foldl, foldr(см , например , Common Lisp, Scheme / Ракетка, Clojure бок о бок справочный лист , Haskell , Scala …

4
Существует ли другое обоснование использования абстрактных классов / интерфейсов в C ++ и Java?
Согласно Хербу Саттеру, следует предпочитать абстрактные интерфейсы (все чисто виртуальные функции) абстрактным классам в C ++, чтобы максимально отделить реализацию. Хотя я лично считаю, что это правило очень полезно, я недавно присоединился к команде со многими программистами на Java, и в коде Java это руководство, по-видимому, не существует. Функции и …

7
Каковы роли синглетонов, абстрактных классов и интерфейсов?
Я изучаю ООП на C ++ и, хотя мне известны определения этих трех концепций, я не могу понять, когда и как их использовать. Давайте использовать этот класс для примера: class Person{ private: string name; int age; public: Person(string p1, int p2){this->name=p1; this->age=p2;} ~Person(){} void set_name (string parameter){this->name=parameter;} void set_age (int …

3
Какую производительность мы можем ожидать от std :: string's c_str ()? Всегда постоянное время?
В последнее время я делал некоторые необходимые оптимизации. Одна вещь, которую я делал, - это изменение некоторых ostringstreams -> sprintfs. Я sprintf'ing кучу std :: strings в массив стиля AC, аля char foo[500]; sprintf(foo, "%s+%s", str1.c_str(), str2.c_str()); Оказывается, что реализация Microsoft std :: string :: c_str () выполняется за постоянное …

7
Есть ли общее соглашение о капитализации в C ++? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Я проделал большую работу в Python и Java, и оба эти языка имеют …

7
Хорошо ли переводится C # на C ++? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Мои уроки программирования в школе были на C ++, но в последние несколько …
13 c#  c++  experience 

9
Переписывание IBM на ассемблере + COBOL на C ++
Я работаю агентом / менеджером по прокату в компании по прокату автомобилей, работающей по системе проката, написанной в 1972 году. Я решил, что, возможно, пришло время обновить информацию. Для некоторой предыстории, вот короткий пример безумия, с которым нам приходится сталкиваться из этой программы ежедневно: Агент по прокату должен помнить, что …

6
Является ли «Объяснить идиому RAII» хорошим проверочным вопросом C ++? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Компания, с которой я работаю, попросила меня проверить кандидатские телефонные звонки, чтобы убедиться, …
13 c++  interview 

7
Дизайн: Обратный звонок в родительский класс
При моделировании объекта с дочерними элементами обычно включают дочерние элементы посредством композиции в качестве члена родительского класса. Однако иногда детям нужно что-то сказать родителю, им нужно вызвать функцию родителя. Как это можно сделать с помощью C ++? Некоторые варианты: Сделайте родительский класс глобальным, поэтому дочерние объекты смогут вызывать функции-члены родительского …

4
В C / C ++ я должен использовать 'const' в параметрах и локальных переменных, когда это возможно?
Этот вопрос вдохновлен вопросом о finalв Java . В C / C ++ я должен использовать, constкогда это возможно? Я знаю, что уже есть связанный вопрос об использовании constв параметрах . К сожалению, этот вопрос и его ответы не полностью отвечают на мой вопрос, потому что он касается только параметров …

4
Почему sizeof называется оператором времени компиляции?
Первоначально это часть другого вопроса. Почему sizeofназывается оператором времени компиляции? Разве это не на самом деле оператор во время выполнения? И если это действительно оператор времени компиляции, как он помогает в создании переносимого кода, который выполняется одинаково на разных компьютерах? Пожалуйста, объясните подробно.
12 c++ 

2
Используя потоковый манипулятор (endl) или символ перехода на новую строку (\ n)?
У меня нет конкретного контекста, в котором я задаю вопрос, но когда я читал книгу для начинающих на C ++, я заметил использование как манипулятора endl stream, так и escape-символа новой строки при работе с потоковым объектом. Пример таков: cout << "Hello World" << endl; cout << "Hello World\n"; Мои …

2
Почему базовый класс должен иметь здесь виртуальный деструктор, если производный класс не выделяет необработанную динамическую память?
Следующий код вызывает утечку памяти: #include <iostream> #include <memory> #include <vector> using namespace std; class base { void virtual initialize_vector() = 0; }; class derived : public base { private: vector<int> vec; public: derived() { initialize_vector(); } void initialize_vector() { for (int i = 0; i < 1000000; i++) { …

1
Использование классов-друзей для инкапсуляции закрытых функций-членов в C ++ - хорошая практика или злоупотребление?
Итак, я заметил, что можно избежать размещения частных функций в заголовках, выполнив что-то вроде этого: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // or whatever …

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