Questions tagged «const»

编程中的常量是定义,其值在程序执行期间是固定的。例如,大多数语言中的文字都是常量。在引用透明的编程样式中,所有定义都是常量。const限定的数据存储区(对象,字段,变量,参数)是“永不改变”的区域,因此可以进行额外的代码生成器优化和对程序正确性的额外静态检查。


3
如何用lambda排序?
sort(mMyClassVector.begin(), mMyClassVector.end(), [](const MyClass & a, const MyClass & b) { return a.mProperty > b.mProperty; }); 我想使用lambda函数对自定义类进行排序,以代替绑定实例方法。但是,上面的代码会产生错误: 错误C2564:“ const char *”:将函数样式转换为内置类型只能使用一个参数 与配合使用效果很好boost::bind(&MyApp::myMethod, this, _1, _2)。
135 c++  sorting  lambda  char  const 

4
C ++中“ const”有多少种用途?
作为C ++的新手程序员,有些构造对我来说仍然很模糊,其中之一是const。您可以在许多地方使用它,并具有许多不同的效果,对于初学者来说,几乎不可能活着。一些C ++专家会永远解释一次各种用法以及是否和/或为什么不使用它们吗?
129 c++  const 

3
转到const的命名约定
我正在尝试确定constGolang中的名称是否有命名约定。 我个人倾向于遵循C风格并以大写形式编写它们,但是我在此页面http://golang.org/doc/effective_go.html上未找到任何内容,该页面似乎列出了该语言的一些命名约定。



9
在C ++和C中将'const int'与'int const'作为函数参数
考虑: int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; } 这两个功能在各个方面都是相同的还是有所不同? 我对C语言的答案很感兴趣,但是如果C ++语言中有一些有趣的东西,我也想知道。
115 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()return类型的常量性,应boost::shared_ptr防止Bar它指向的修改。我的猜测是shared_ptr&lt;const Bar&gt;要返回该类型的类型,而const shared_ptr&lt;Bar&gt;这将防止指针本身重新分配以指向不同的对象,Bar但允许Bar对其指向的对象进行修改。但是,我不确定。如果知道的人可以确认这一点,或者如果我弄错了,请更正我,我将不胜感激。谢谢!
115 c++  boost  const  shared-ptr 

5
C ++映射访问丢弃限定符(const)
以下代码说,将map传递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 0; } 这是因为在地图访问中可能进行分配吗?不能将具有地图访问权限的函数声明为const? MapWrapper.cpp:10: error: passing ‘const std::map&lt;int, int, std::less&lt;int&gt;, …
113 c++  stl  const  maps 

10
如何在C ++中初始化私有静态const映射?
我只需要字典或关联数组string=&gt;即可int。 这种情况下有类型映射C ++。 但是对于所有实例,我只需要一个映射(-&gt;静态),并且该映射不能更改(-&gt; const); 我已经在Boost库中找到了这种方式 std::map&lt;int, char&gt; example = boost::assign::map_list_of(1, 'a') (2, 'b') (3, 'c'); 没有这个库,还有其他解决方案吗?我已经尝试过类似的方法,但是地图初始化总是存在一些问题。 class myClass{ private: static map&lt;int,int&gt; create_map() { map&lt;int,int&gt; m; m[1] = 2; m[3] = 4; m[5] = 6; return m; } static map&lt;int,int&gt; myMap = create_map(); };

10
如何在类中初始化const成员变量?
#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; } }; 当我尝试t使用100 初始化const成员变量时,却给了我以下错误: test.cpp:21: error: ISO C++ forbids initialization of member ‘t’ test.cpp:21: error: making ‘t’ static 如何初始化const值?
105 c++  const 

7
为什么argc不是常数?
int main( const int argc , const char[] const argv) 正如有效的C ++项目#3指出“尽可能使用const”一样,我开始思考“为什么不设置这些“常量”参数const”? 在程序中是否存在argc修改的值的情况?
104 c++  const  main  argc  effective-c++ 

2
C ++ 0x Lambda按值捕获始终是const吗?
有什么方法可以按值捕获,并使捕获的值非常量?我有一个库函子,我想捕获并调用一个非const但应该是的方法。 以下代码不会编译,但通过使foo :: operator()const可以对其进行修复。 struct foo { bool operator () ( const bool &amp; a ) { return a; } }; int _tmain(int argc, _TCHAR* argv[]) { foo afoo; auto bar = [=] () -&gt; bool { afoo(true); }; return 0; }
102 c++  lambda  const  c++11 

7
为什么我可以在javascript中更改常量的值
我知道ES6尚未标准化,但是目前许多浏览器都支持 const JS中的关键字。 规范中写道: 常量的值不能通过重新分配而更改,并且常量也不能重新声明。因此,尽管可以在不初始化的情况下声明常量,但这样做是没有用的。 当我做这样的事情: const xxx = 6; xxx = 999; xxx++; const yyy = []; yyy = 'string'; yyy = [15, 'a']; 我看到一切正常xxx仍6和yyy是[]。 但是,如果这样做yyy.push(6); yyy.push(1);,我的常量数组已更改。现在是[6, 1]这样,顺便说一句,我仍然无法用更改它yyy = 1;。 我是一个错误,还是我错过了什么?我在最新的chrome和FF29中尝试过

4
C ++ const映射元素访问
我尝试使用operator []访问const C ++映射中的元素,但是此方法失败。我也尝试使用“ at()”来做同样的事情。这次成功了。但是,我找不到有关使用“ at()”访问const C ++映射中的元素的任何参考。“ at()”是C ++映射中的新增功能吗?在哪里可以找到更多有关此的信息?非常感谢你! 示例如下: #include &lt;iostream&gt; #include &lt;map&gt; using namespace std; int main() { map&lt;int, char&gt; A; A[1] = 'b'; A[3] = 'c'; const map&lt;int, char&gt; B = A; cout &lt;&lt; B.at(3) &lt;&lt; endl; // it works cout &lt;&lt; B[3] &lt;&lt; endl; // …
100 c++  stl  map  const 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.