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

Константы в программировании - это определения, значение которых фиксируется на протяжении всего выполнения программы. Например, литералы в большинстве языков являются константами. В ссылочно-прозрачных стилях программирования все определения постоянны. Область хранения данных с константной квалификацией (объект, поле, переменная, параметр) - это область, которая «никогда не меняется», что обеспечивает дополнительную оптимизацию генератора кода и дополнительную статическую проверку правильности программы.


3
Как сортировать с лямбдой?
sort(mMyClassVector.begin(), mMyClassVector.end(), [](const MyClass & a, const MyClass & b) { return a.mProperty > b.mProperty; }); Я хотел бы использовать лямбда-функцию для сортировки пользовательских классов вместо привязки метода экземпляра. Однако приведенный выше код дает ошибку: ошибка C2564: 'const char *': преобразование стиля функции во встроенный тип может принимать только один …
138 c++  sorting  lambda  char  const 

4
Сколько и какие варианты использования «const» в C ++?
Как начинающему программисту на C ++, есть некоторые конструкции, которые мне кажутся очень непонятными, одна из них const. Вы можете использовать его во многих местах и ​​с таким количеством различных эффектов, что новичку практически невозможно выйти живым. Сможет ли какой-нибудь гуру C ++ однажды навсегда объяснить различные варианты использования и …
129 c++  const 

3
Соглашения об именах в Go для const
Я пытаюсь определить, существует ли соглашение об именах для имен constв Голанге. Лично я склонен следовать стилю C и писать их в верхнем регистре, но я не нашел на этой странице http://golang.org/doc/effective_go.html ничего, что, кажется, перечисляет некоторые соглашения об именах для языка.


9
'const int' против 'int const' как параметры функции в C ++ и C
Рассматривать: int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; } Эти две функции одинаковы во всех аспектах или есть разница? Меня интересует ответ для языка C, но если есть что-то интересное в языке C ++, я бы тоже хотел знать.
116 c++  c  const 

4
Разница между `const shared_ptr <T>` и `shared_ptr <const T>`?
Я пишу метод доступа для общего указателя на C ++, который выглядит примерно так: class Foo { public: return_type getBar() const { return m_bar; } private: boost::shared_ptr&lt;Bar&gt; m_bar; } Таким образом, для поддержки константности getBar()возвращаемого типа должен быть объект boost::shared_ptr, предотвращающий изменение того, на что Barон указывает. Я предполагаю , …
116 c++  boost  const  shared-ptr 

5
Почему я не могу инициализировать неконстантный статический член или статический массив в классе?
Почему я не могу инициализировать неконстантный staticчлен или staticмассив в классе? class A { static const int a = 3; static int b = 3; static const int c[2] = { 1, 2 }; static int d[2] = { 1, 2 }; }; int main() { A a; return 0; …
116 c++  static  const 

5
Доступ к карте C ++ отбрасывает квалификаторы (const)
Следующий код говорит, что передача карты as constв operator[]метод отбрасывает квалификаторы: #include &lt;iostream&gt; #include &lt;map&gt; #include &lt;string&gt; using namespace std; class MapWrapper { public: const int &amp;get_value(const int &amp;key) const { return _map[key]; } private: map&lt;int, int&gt; _map; }; int main() { MapWrapper mw; cout &lt;&lt; mw.get_value(42) &lt;&lt; endl; return …
113 c++  stl  const  maps 

10
Как инициализировать частную статическую константную карту в C ++?
Мне нужен только словарь или ассоциативный массив string=&gt; int. Для этого случая существует карта типов C ++. Но мне нужна только одна карта для всех экземпляров (-&gt; static), и эту карту нельзя изменить (-&gt; const); Я нашел этот способ с помощью библиотеки boost std::map&lt;int, char&gt; example = boost::assign::map_list_of(1, 'a') (2, …

10
Как инициализировать константную переменную-член в классе?
#include &lt;iostream&gt; using namespace std; class T1 { const int t = 100; public: T1() { cout &lt;&lt; "T1 constructor: " &lt;&lt; t &lt;&lt; endl; } }; Когда я пытаюсь инициализировать переменную-член const значением t100. Но это дает мне следующую ошибку: test.cpp:21: error: ISO C++ forbids initialization of member ‘t’ …
105 c++  const 

7
Почему argc не является константой?
int main( const int argc , const char[] const argv) Поскольку в пункте № 3 эффективного C ++ сказано: «По возможности используйте const», я начинаю думать: «Почему бы не сделать эти« постоянные »параметры const?». Есть ли какой-нибудь сценарий, при котором значение argcизменяется в программе?
104 c++  const  main  argc  effective-c++ 

2
C ++ 0x лямбда-захват по значению всегда const?
Есть ли способ захватить по значению и сделать захваченное значение неконстантным? У меня есть функтор библиотеки, который я хотел бы захватить и вызвать метод, который не является константой, но должен быть. Следующее не компилируется, но создание foo :: operator () const исправляет его. struct foo { bool operator () ( …
103 c++  lambda  const  c++11 

7
Почему я могу изменить значение константы в javascript
Я знаю, что ES6 еще не стандартизирован, но многие браузеры в настоящее время поддерживают const ключевое слово в JS. В спецификации написано, что: Значение константы не может измениться посредством повторного присвоения, и константа не может быть повторно объявлена. Из-за этого, хотя можно объявить константу без ее инициализации, это было бы …

4
Доступ к элементу карты const в C ++
Я попытался использовать оператор [] для доступа к элементу на карте const C ++, но этот метод не удался. Я также пытался использовать "at ()", чтобы сделать то же самое. На этот раз это сработало. Однако я не смог найти никаких ссылок на использование "at ()" для доступа к элементу …
101 c++  stl  map  const 

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