คำถามติดแท็ก const

ค่าคงที่ในการเขียนโปรแกรมเป็นคำจำกัดความที่มีค่าคงที่ตลอดการทำงานของโปรแกรม ตัวอักษรในภาษาส่วนใหญ่เป็นค่าคงที่เช่น ในรูปแบบการเขียนโปรแกรมแบบอ้างอิงโปร่งใสทุกคำจำกัดความเป็นค่าคงที่ พื้นที่จัดเก็บข้อมูลที่ผ่านการรับรองคุณสมบัติ (ออบเจ็กต์, ฟิลด์, ตัวแปร, พารามิเตอร์) คือพื้นที่ที่ "ไม่เคยเปลี่ยนแปลง" จึงทำให้สามารถเพิ่มประสิทธิภาพของตัวสร้างโค้ดเสริมและตรวจสอบความถูกต้องของโปรแกรมเพิ่มเติมได้


3
จะเรียงด้วยแลมด้ายังไง?
sort(mMyClassVector.begin(), mMyClassVector.end(), [](const MyClass & a, const MyClass & b) { return a.mProperty > b.mProperty; }); ฉันต้องการใช้ฟังก์ชันแลมบ์ดาเพื่อจัดเรียงคลาสที่กำหนดเองแทนการผูกวิธีอินสแตนซ์ อย่างไรก็ตามรหัสด้านบนให้ข้อผิดพลาด: ข้อผิดพลาด C2564: 'const char *': การแปลงรูปแบบฟังก์ชันเป็นชนิดที่มีอยู่แล้วภายในสามารถรับอาร์กิวเมนต์เดียวเท่านั้น มันใช้งานได้ดีกับboost::bind(&MyApp::myMethod, this, _1, _2).
138 c++  sorting  lambda  char  const 

4
"const" ใน C ++ มีการใช้งานอย่างไร
ในฐานะที่เป็นสามเณร c ++ Programmer constมีโครงสร้างบางอย่างที่มองยังคงเป็นอย่างปิดบังให้ฉันหนึ่งของเหล่านี้เป็น คุณสามารถใช้มันได้ในหลาย ๆ ที่และมีเอฟเฟกต์ต่าง ๆ มากมายซึ่งแทบจะเป็นไปไม่ได้เลยที่ผู้เริ่มต้นจะมีชีวิต กูรู C ++ บางคนจะอธิบายการใช้งานที่หลากหลายตลอดไปหรือไม่และ / หรือทำไมไม่ใช้?
129 c++  const 

3
ไปที่หลักการตั้งชื่อสำหรับ const
ฉันพยายามตรวจสอบว่ามีหลักการตั้งชื่อสำหรับชื่อconstใน Golang หรือไม่ โดยส่วนตัวแล้วฉันมักจะทำตามสไตล์ C และเขียนเป็นตัวพิมพ์ใหญ่ แต่ฉันไม่พบสิ่งใดในหน้านี้http://golang.org/doc/effective_go.htmlซึ่งดูเหมือนว่าจะมีการกำหนดรูปแบบการตั้งชื่อสำหรับภาษานั้น ๆ

1
const หมายถึง thread-safe ใน C ++ 11 หรือไม่?
ผมได้ยินว่าconstหมายถึงด้ายปลอดภัยในC ++ 11 เป็นเช่นนั้นจริงหรือ? หมายความว่าconstตอนนี้เทียบเท่าของJava 's synchronized? พวกเขาใช้คีย์เวิร์ดหมดหรือไม่

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; } ดังนั้นเพื่อรองรับ const-ness ของgetBar()ประเภทการส่งคืนควรเป็นสิ่งboost::shared_ptrที่ป้องกันการแก้ไขที่Barชี้ไป ฉันเดาว่าshared_ptr&lt;const Bar&gt;เป็นประเภทที่ฉันต้องการกลับไปทำเช่นนั้นในขณะที่const shared_ptr&lt;Bar&gt;จะป้องกันไม่ให้การกำหนดตัวชี้ซ้ำเพื่อชี้ไปยังตำแหน่งอื่นBarแต่อนุญาตให้แก้ไขสิ่งBarที่ชี้ไป ... อย่างไรก็ตามฉันไม่แน่ใจ ฉันจะขอบคุณมากถ้ามีคนที่รู้แน่ชัดสามารถยืนยันเรื่องนี้หรือแก้ไขฉันได้หากฉันเข้าใจผิด ขอบคุณ!
116 c++  boost  const  shared-ptr 

5
เหตุใดฉันจึงไม่สามารถเริ่มต้นสมาชิกแบบคงที่ที่ไม่ใช่ const หรืออาร์เรย์แบบคงที่ในคลาสได้
เหตุใดฉันจึงไม่สามารถเริ่มต้นstaticสมาชิกที่ไม่ใช่ const หรือ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; } คอมไพเลอร์ออกข้อผิดพลาดต่อไปนี้: g++ main.cpp main.cpp:4:17: error: ISO C++ …
116 c++  static  const 

5
การเข้าถึงแผนที่ C ++ ละทิ้งคุณสมบัติ (const)
รหัสต่อไปนี้ระบุว่าการส่งผ่านแผนที่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; } นี่เป็นเพราะการจัดสรรที่เป็นไปได้ที่เกิดขึ้นในการเข้าถึงแผนที่หรือไม่? ไม่สามารถประกาศฟังก์ชันที่มีการเข้าถึงแผนที่ได้หรือไม่ MapWrapper.cpp:10: error: passing ‘const std::map&lt;int, int, …
113 c++  stl  const  maps 

10
วิธีการเริ่มต้นแผนที่ const คงที่ส่วนตัวใน C ++?
ฉันต้องการเพียงแค่พจนานุกรมหรืออาเรย์=&gt;stringint มีประเภทแผนที่ C ++ สำหรับกรณีนี้ แต่ฉันต้องการอินสแตนซ์สำหรับแผนที่เดียวเท่านั้น (-&gt; คงที่) และแผนที่นี้ไม่สามารถเปลี่ยนแปลงได้ (-&gt; const); ฉันพบวิธีนี้แล้วกับไลบรารีที่เพิ่มขึ้น std::map&lt;int, char&gt; example = boost::assign::map_list_of(1, 'a') (2, 'b') (3, 'c'); มีวิธีอื่นที่ไม่มี lib นี้หรือไม่? ฉันได้ลองสิ่งนี้แล้ว แต่มักจะมีปัญหาบางอย่างเกี่ยวกับการเริ่มต้นแผนที่ 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; …

10
วิธีการเริ่มต้นตัวแปร const member ในคลาส?
#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 tด้วย 100 แต่มันทำให้ฉันมีข้อผิดพลาดต่อไปนี้: test.cpp:21: error: ISO C++ forbids initialization of member ‘t’ test.cpp:21: error: making ‘t’ static ฉันจะเริ่มต้นconstค่าได้อย่างไร
107 c++  const 

7
ทำไม Argc ถึงไม่คงที่?
int main( const int argc , const char[] const argv) ในฐานะที่เป็นที่มีประสิทธิภาพ c ++ Item # 3 รัฐ "ใช้ const เมื่อใดก็ตามที่เป็นไปได้" ผมเริ่มคิด "ทำไมไม่ทำให้ 'คงที่' พารามิเตอร์เหล่านี้const"? มีสถานการณ์ใดบ้างที่argcมีการแก้ไขค่าในโปรแกรม?
104 c++  const  main  argc  effective-c++ 

2
C ++ 0x แลมบ์ดาจับตามค่าเสมอ const?
มีวิธีใดบ้างในการจับตามมูลค่าและทำให้ค่าที่จับได้ไม่ใช่ const? ฉันมี functor ของไลบรารีที่ฉันต้องการจับภาพและเรียกใช้เมธอดที่ไม่ใช่ 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); }; …
103 c++  lambda  const  c++11 

4
การเข้าถึงองค์ประกอบแผนที่ C ++ const
ฉันพยายามใช้ตัวดำเนินการ [] เข้าถึงองค์ประกอบในแมป 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 …
102 c++  stl  map  const 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.