คำถามติดแท็ก access-specifier

15
ความแตกต่างระหว่างการสืบทอดส่วนบุคคลสาธารณะและการป้องกัน
ความแตกต่างระหว่างคืออะไรpublic, privateและprotectedมรดกในc ++? คำถามทั้งหมดที่ฉันพบในการจัดการกับกรณีเฉพาะ

8
จะสร้างวิธีเรียนแบบส่วนตัวได้อย่างไร?
วิธีการในการสร้างวิธีการเรียนแบบส่วนตัวนี้เป็นอย่างไร class Person def self.get_name persons_name end class << self private def persons_name "Sam" end end end puts "Hey, " + Person.get_name puts "Hey, " + Person.persons_name #=> raises "private method `persons_name' called for Person:Class (NoMethodError)" แต่นี่ไม่ได้: class Person def self.get_name persons_name end private def self.persons_name "Sam" end end puts …

10
เป็นตัวอย่างที่ดีในการแยกความแตกต่างระหว่าง fileprivate และ private ใน Swift3
นี้บทความได้รับประโยชน์ในการทำความเข้าใจ specifiers Swift 3เข้าถึงใหม่ใน นอกจากนี้ยังให้ตัวอย่างบางส่วนของการใช้งานที่แตกต่างกันและfileprivateprivate คำถามของฉันคือ - ไม่ได้ใช้fileprivateกับฟังก์ชั่นที่จะใช้เฉพาะในไฟล์นี้เหมือนกับที่ใช้privateหรือไม่

7
ทำไมทับทิมถึงมีทั้งแบบส่วนตัวและแบบป้องกัน?
ก่อนที่ฉันจะอ่านบทความนี้ฉันคิดว่าการควบคุมการเข้าถึงใน Ruby ทำงานเช่นนี้: public- สามารถเข้าถึงได้โดยวัตถุใด ๆ (เช่นObj.new.public_method) protected - สามารถเข้าถึงได้จากภายในวัตถุเท่านั้นเช่นเดียวกับคลาสย่อยใด ๆ private - เช่นเดียวกับที่ได้รับการป้องกัน แต่ไม่มีวิธีการในคลาสย่อย อย่างไรก็ตามดูเหมือนว่าprotectedและprivateปฏิบัติเช่นเดียวกันยกเว้นความจริงที่ว่าคุณไม่สามารถเรียกprivateวิธีการด้วยผู้รับที่ชัดเจน (เช่นใช้self.protected_methodงานได้ แต่self.private_methodไม่ได้) ประเด็นนี้คืออะไร? เมื่อใดจะมีสถานการณ์เมื่อคุณไม่ต้องการวิธีการของคุณที่เรียกด้วยผู้รับที่ชัดเจน?

5
วิธีเสมือนส่วนตัวใน C ++
ข้อดีของการสร้างเมธอดส่วนตัวเสมือนใน C ++ คืออะไร? ฉันสังเกตเห็นสิ่งนี้ในโครงการ C ++ โอเพ่นซอร์ส: class HTMLDocument : public Document, public CachedResourceClient { private: virtual bool childAllowed(Node*); virtual PassRefPtr<Element> createElement(const AtomicString& tagName, ExceptionCode&); };


9
วิธีโมดูลส่วนตัวใน Ruby
ฉันมีคำถามสองส่วน ปฏิบัติที่ดีที่สุด ฉันมีอัลกอริทึมที่ดำเนินการบางอย่างกับโครงสร้างข้อมูลโดยใช้อินเทอร์เฟซสาธารณะ ปัจจุบันเป็นโมดูลที่มีวิธีการแบบคงที่จำนวนมากซึ่งเป็นแบบส่วนตัวทั้งหมดยกเว้นวิธีการเชื่อมต่อสาธารณะเพียงวิธีเดียว มีตัวแปรอินสแตนซ์หนึ่งตัวที่ต้องใช้ร่วมกันระหว่างวิธีการทั้งหมด นี่คือตัวเลือกที่ฉันเห็นซึ่งดีที่สุด: โมดูลที่มีวิธีการแบบคงที่ ('โมดูล' ในทับทิม) คลาสด้วยวิธีการคงที่ โมดูลMixinสำหรับรวมไว้ในโครงสร้างข้อมูล Refactorออกเป็นส่วนหนึ่งของขั้นตอนวิธีที่ปรับเปลี่ยนโครงสร้างข้อมูล (เล็กมาก) และให้ที่ mixin ที่เรียกวิธีการคงที่ของโมดูลอัลกอริทึมที่ ส่วนทางเทคนิค มีวิธีใดในการสร้างเมธอด Private Moduleหรือไม่? module Thing def self.pub; puts "Public method"; end private def self.priv; puts "Private method"; end end privateในนั้นดูเหมือนจะไม่ได้มีผลกระทบใด ๆก็ยังสามารถเรียกThing.privโดยไม่มีปัญหา

5
เหตุใดฉันจึงเข้าถึงตัวแปรส่วนตัวในตัวสร้างการคัดลอกได้
ฉันได้เรียนรู้ว่าฉันไม่สามารถเข้าถึงตัวแปรส่วนตัวได้โดยใช้ get-function ในคลาสเท่านั้น แต่ทำไมฉันถึงเข้าถึงได้ในตัวสร้างสำเนา ตัวอย่าง: Field::Field(const Field& f) { pFirst = new T[f.capacity()]; pLast = pFirst + (f.pLast - f.pFirst); pEnd = pFirst + (f.pEnd - f.pFirst); std::copy(f.pFirst, f.pLast, pFirst); } คำประกาศของฉัน: private: T *pFirst,*pLast,*pEnd;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.