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

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


7
เขตข้อมูลคงที่สืบทอดมาหรือไม่
เมื่อสมาชิกแบบคงที่ได้รับการสืบทอดพวกมันคงที่สำหรับลำดับชั้นทั้งหมดหรือเพียงแค่คลาสนั้นเช่น: class SomeClass { public: SomeClass(){total++;} static int total; }; class SomeDerivedClass: public SomeClass { public: SomeDerivedClass(){total++;} }; int main() { SomeClass A; SomeClass B; SomeDerivedClass C; return 0; } ผลรวมจะเป็น 3 ในทั้งสามอินสแตนซ์หรือจะเป็น 2 สำหรับSomeClassและ 1 สำหรับSomeDerivedClass?
102 c++  inheritance  static 

4
วงจรชีวิตของวัตถุคงที่ของ Android
ฉันกำลังสร้างแอปพลิเคชันการค้นหาเหตุการณ์เราตั้งเกณฑ์การค้นหาจากหน้าจอหนึ่งเติมในหน้าจออื่นจากนั้นผู้ใช้สามารถแก้ไขเกณฑ์การค้นหาจากหน้าจอที่ 3 และไปที่หน้าจอที่ 4 เพื่อให้บรรลุภารกิจข้างต้นฉันใช้วัตถุคงที่ซึ่งจำค่ารอบ ๆ แอปพลิเคชันและฉันไม่จำเป็นต้องทำอะไรเพิ่มเติม แต่ฉันกลัวถ้าเกี่ยวกับวงจรชีวิตของวัตถุคงที่ใน Android หากหน่วยความจำต่ำพบว่า android ลบวัตถุคงที่ ??? เนื่องจาก Android รองรับการทำงานแบบมัลติทาสกิ้งหากผู้ใช้เปลี่ยนไปใช้แอปพลิเคชันอื่นและเมื่อผู้ใช้กลับมาแอปพลิเคชันเริ่มทำงานบ้าวัตถุคงที่จะถูกลบออกเมื่อทำงานหลายอย่างหรือไม่? คิดยังไง ?? และยังแนะนำให้ถือวัตถุคงที่ด้วยวิธี singleton เป็นแนวทางที่ดีกว่า ???

4
การตั้งค่าไดเร็กทอรีแบบคงที่ที่แตกต่างกันสองรายการในเฟรมเวิร์ก node.js Express
เป็นไปได้ไหม? ฉันต้องการตั้งค่าไดเรกทอรีที่แตกต่างกันสองรายการเพื่อให้บริการไฟล์แบบคงที่ สมมติว่า / public และ / mnt

7
เหตุใดฟิลด์ทั้งหมดในอินเทอร์เฟซจึงคงที่โดยปริยายและสุดท้าย
ฉันเพียงแค่พยายามที่จะเข้าใจว่าทำไมทุกสาขาที่กำหนดไว้ใน Interface เป็นโดยปริยายและstatic finalแนวคิดในการรักษาเขตข้อมูลมีstaticความหมายสำหรับฉันเนื่องจากคุณไม่มีวัตถุของอินเทอร์เฟซ แต่ทำไมจึงเป็นfinal(โดยปริยาย)? มีใครรู้บ้างว่าทำไมนักออกแบบ Java ถึงทำฟิลด์ในอินเทอร์เฟซstaticและfinal?

4
ตัวแปรฟังก์ชันคงที่ใน Swift
ฉันกำลังพยายามหาวิธีประกาศตัวแปรแบบคงที่ที่กำหนดขอบเขตไว้เฉพาะในฟังก์ชันใน Swift ใน C อาจมีลักษณะดังนี้: int foo() { static int timesCalled = 0; ++timesCalled; return timesCalled; } ใน Objective-C โดยพื้นฐานแล้วจะเหมือนกัน: - (NSInteger)foo { static NSInteger timesCalled = 0; ++timesCalled; return timesCalled; } แต่ดูเหมือนฉันจะทำอะไรแบบนี้ใน Swift ไม่ได้ ฉันได้ลองประกาศตัวแปรด้วยวิธีต่อไปนี้: static var timesCalledA = 0 var static timesCalledB = 0 var timesCalledC: static Int …
97 function  static  swift 

6
ช่องคงเปิดสำหรับการรวบรวมขยะหรือไม่
ให้คลาสยูทิลิตี้สมมุติที่ใช้ในการตั้งค่าโปรแกรมเท่านั้น: class MyUtils { private static MyObject myObject = new MyObject(); /*package*/static boolean doStuff(Params... params) { // do stuff with myObject and params... } } myObject จะถูกเก็บรวบรวมเมื่อไม่มีการใช้งานอีกต่อไปหรือไม่หรือจะคงอยู่ตลอดชีวิตของโปรแกรม?

7
ตัวแปรคงที่ใช้ร่วมกันระหว่างเธรดหรือไม่
ครูของฉันในคลาส Java ระดับสูงเกี่ยวกับเธรดพูดบางอย่างที่ฉันไม่แน่ใจ เขาระบุว่าโค้ดต่อไปนี้ไม่จำเป็นต้องอัพเดตreadyตัวแปร ตามที่เขาพูดทั้งสองเธรดไม่จำเป็นต้องแชร์ตัวแปรคงที่โดยเฉพาะในกรณีที่แต่ละเธรด (เธรดหลักเทียบกับReaderThread) กำลังทำงานบนโปรเซสเซอร์ของตัวเองดังนั้นจึงไม่แชร์รีจิสเตอร์ / แคช / ฯลฯ เดียวกันและซีพียูตัวเดียว จะไม่อัปเดตอื่น ๆ โดยพื้นฐานแล้วเขากล่าวว่าเป็นไปได้ที่readyจะมีการอัปเดตในเธรดหลัก แต่ไม่ใช่ในเธรดReaderThreadดังนั้นสิ่งนั้นReaderThreadจะวนซ้ำไปเรื่อย ๆ นอกจากนี้เขายังอ้างว่าเป็นไปได้ที่โปรแกรมจะพิมพ์0หรือ42. ผมเข้าใจว่า42อาจจะมีการพิมพ์ 0แต่ไม่ เขากล่าวถึงกรณีนี้เมื่อnumberตัวแปรถูกตั้งค่าเป็นค่าเริ่มต้น ฉันคิดว่าบางทีไม่สามารถรับประกันได้ว่าตัวแปรคงที่ถูกอัพเดตระหว่างเธรด แต่สิ่งนี้ทำให้ฉันแปลกมากสำหรับ Java การreadyระเหยสามารถแก้ไขปัญหานี้ได้หรือไม่? เขาแสดงรหัสนี้: public class NoVisibility { private static boolean ready; private static int number; private static class ReaderThread extends Thread { public void run() { while …

9
อะไรคือผลกำไรจากการประกาศวิธีการเป็นแบบคงที่
ฉันเพิ่งดูคำเตือนของฉันใน Eclipse และเจอคำเตือนนี้: มันจะเตือนคอมไพเลอร์หากวิธีนี้สามารถประกาศเป็นแบบคงที่ได้ [แก้ไข]ใบเสนอราคาที่แน่นอนภายในความช่วยเหลือ Eclipse โดยเน้นเรื่องส่วนตัวและขั้นสุดท้าย: เมื่อเปิดใช้งานคอมไพลเลอร์จะแสดงข้อผิดพลาดหรือคำเตือนสำหรับวิธีการที่เป็นส่วนตัวหรือขั้นสุดท้ายและอ้างถึงเฉพาะสมาชิกแบบคงที่ ใช่ฉันรู้ว่าฉันสามารถปิดได้ แต่ฉันต้องการทราบเหตุผลในการเปิดเครื่อง? เหตุใดจึงเป็นเรื่องดีที่จะประกาศทุกวิธีที่เป็นไปได้ว่าเป็นแบบคงที่? สิ่งนี้จะให้ประโยชน์ด้านประสิทธิภาพหรือไม่? (ในโดเมนมือถือ) ชี้ให้เห็นว่าวิธีการเป็นแบบคงที่ฉันคิดว่ากำลังแสดงว่าคุณไม่ได้ใช้ตัวแปรอินสแตนซ์ใด ๆ ดังนั้นจึงสามารถย้ายไปที่คลาสสไตล์ยูทิลิตี้ได้หรือไม่ ในตอนท้ายของวันฉันควรจะปิด 'เพิกเฉย' หรือฉันควรแก้ไขคำเตือนมากกว่า 100 รายการที่ให้ไว้? คุณคิดว่านี่เป็นเพียงคำหลักพิเศษที่ทำให้โค้ดสกปรกเนื่องจากคอมไพเลอร์จะสอดแทรกวิธีการเหล่านี้ต่อไปหรือไม่? (เหมือนกับว่าคุณไม่ได้ประกาศตัวแปรทุกตัวที่ทำได้สุดท้ายแต่คุณทำได้ )

4
C #: จะเกิดอะไรขึ้นถ้ามีการเรียกวิธีการแบบคงที่จากหลายเธรด?
ในแอปพลิเคชันของฉันฉันมีวิธีการแบบคงที่ซึ่งเรียกใช้จากหลายเธรดในเวลาเดียวกัน ข้อมูลของฉันจะถูกปะปนหรือไม่? ในความพยายามครั้งแรกของฉันวิธีนี้ไม่คงที่และฉันกำลังสร้างหลายอินสแตนซ์ของคลาส ในกรณีนั้นข้อมูลของฉันก็ปนกัน ฉันไม่แน่ใจว่าสิ่งนี้เกิดขึ้นได้อย่างไรเพราะมันเกิดขึ้นเพียงบางครั้งเท่านั้น ฉันยังคงแก้ไขข้อบกพร่องอยู่ แต่ตอนนี้วิธีนี้เป็นแบบคงที่ฉันไม่มีปัญหาแล้ว บางทีมันอาจจะเป็นแค่โชค ไม่รู้แน่ชัดว่า

10
ไฟล์คงที่ใน Flask - robot.txt, sitemap.xml (mod_wsgi)
มีวิธีแก้ปัญหาที่ชาญฉลาดในการจัดเก็บไฟล์แบบคงที่ในไดเรกทอรีรากของแอปพลิเคชันของ Flask คาดว่าจะพบ robots.txt และ sitemap.xml ใน / ดังนั้นความคิดของฉันคือการสร้างเส้นทางสำหรับพวกเขา: @app.route('/sitemap.xml', methods=['GET']) def sitemap(): response = make_response(open('sitemap.xml').read()) response.headers["Content-type"] = "text/plain" return response ต้องมีอะไรที่สะดวกกว่านี้ :)

11
อาร์เรย์แบบคงที่เทียบกับอาร์เรย์แบบไดนามิกใน C ++
อะไรคือความแตกต่างระหว่างอาร์เรย์แบบคงที่และอาร์เรย์แบบไดนามิกใน C ++? ฉันต้องทำงานให้กับชั้นเรียนของฉันและมันบอกว่าห้ามใช้อาร์เรย์แบบคงที่มีเพียงอาร์เรย์แบบไดนามิกเท่านั้น ฉันดูในหนังสือและออนไลน์แล้ว แต่ดูเหมือนจะไม่เข้าใจ ฉันคิดว่าคงถูกสร้างขึ้นในเวลาคอมไพล์และไดนามิกที่รันไทม์ แต่ฉันอาจเข้าใจผิดเกี่ยวกับการจัดสรรหน่วยความจำ คุณสามารถอธิบายความแตกต่างระหว่างอาร์เรย์แบบคงที่และอาร์เรย์แบบไดนามิกใน C ++ ได้หรือไม่?

12
การประกาศตัวแปรในไฟล์ส่วนหัว - คงที่หรือไม่?
เมื่อปรับโครงสร้างใหม่บางส่วน#definesฉันเจอการประกาศที่คล้ายกับสิ่งต่อไปนี้ในไฟล์ส่วนหัว C ++: static const unsigned int VAL = 42; const unsigned int ANOTHER_VAL = 37; คำถามคือสถิตจะสร้างความแตกต่างอะไรได้บ้าง? โปรดทราบว่าการรวมส่วนหัวหลายรายการไม่สามารถทำได้เนื่องจาก#ifndef HEADER #define HEADER #endifเคล็ดลับแบบคลาสสิก(หากมีความสำคัญ) สแตติกหมายถึงการVALสร้างสำเนาเพียงชุดเดียวในกรณีที่ส่วนหัวรวมอยู่ในไฟล์ต้นฉบับมากกว่าหนึ่งไฟล์หรือไม่
91 c++  c  static 

3
การเลิกใช้งานคำหลักคงที่ ... ไม่มีอีกแล้วหรือ
ใน C ++ เป็นไปได้ที่จะใช้staticคีย์เวิร์ดภายในหน่วยการแปลเพื่อส่งผลต่อการแสดงสัญลักษณ์ (ไม่ว่าจะเป็นการประกาศตัวแปรหรือฟังก์ชัน) ใน n3092 สิ่งนี้เลิกใช้แล้ว: ภาคผนวก D.2 [depr.static] การใช้คีย์เวิร์ดแบบคงที่จะเลิกใช้เมื่อประกาศอ็อบเจ็กต์ในขอบเขตเนมสเปซ (ดู 3.3.6) ใน n3225 สิ่งนี้ถูกลบออก บทความเดียวที่ฉันจะหาค่อนข้างเป็นทางการ แม้ว่าจะขีดเส้นใต้ว่าสำหรับความเข้ากันได้กับ C (และความสามารถในการคอมไพล์โปรแกรม C เป็น C ++) การเลิกใช้งานนั้นน่ารำคาญ อย่างไรก็ตามการรวบรวมโปรแกรม C โดยตรงเนื่องจาก C ++ อาจเป็นประสบการณ์ที่น่าหงุดหงิดอยู่แล้วดังนั้นฉันจึงไม่แน่ใจว่าควรพิจารณาหรือไม่ มีใครรู้บ้างว่าทำไมถึงเปลี่ยน?
89 c++  static  c++11  standards 


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