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

13
วิธีการเตือนโปรแกรมเมอร์อื่น ๆ ของการใช้งานในชั้นเรียน
ฉันกำลังเขียนชั้นเรียนที่ "ต้องใช้ในทางที่เฉพาะเจาะจง" (ฉันเดาว่าชั้นเรียนทั้งหมดต้อง ... ) ตัวอย่างเช่นผมสร้างfooManagerชั้นซึ่งต้องมีInitialize(string,string)การเรียกร้องให้พูดให้ และเพื่อผลักดันตัวอย่างต่อไปอีกเล็กน้อยชั้นเรียนจะไร้ประโยชน์หากเราไม่ฟังการThisHappenedกระทำของมัน ประเด็นของฉันคือชั้นเรียนที่ฉันเขียนต้องใช้วิธีการโทร แต่มันจะรวบรวมได้ดีถ้าคุณไม่เรียกวิธีการเหล่านั้นและจะจบลงด้วย FooManager ใหม่ที่ว่างเปล่า ในบางจุดมันอาจจะไม่ทำงานหรืออาจผิดพลาดขึ้นอยู่กับคลาสและสิ่งที่ทำ โปรแกรมเมอร์ที่ใช้ชั้นเรียนของฉันจะมองเข้าไปข้างในอย่างชัดเจนและตระหนักว่า "โอ้ฉันไม่ได้เรียก Initialize!" และมันก็ใช้ได้ แต่ฉันไม่ชอบมัน สิ่งที่ฉันต้องการนึกคิดคือรหัสที่จะไม่คอมไพล์หากไม่มีการเรียกใช้เมธอด ฉันเดาว่ามันเป็นไปไม่ได้ หรือบางสิ่งที่จะมองเห็นได้ชัดเจนทันที ฉันพบว่าตัวเองมีปัญหาด้วยวิธีการปัจจุบันที่ฉันมีที่นี่ซึ่งต่อไปนี้: เพิ่มค่าบูลีนส่วนตัวในชั้นเรียนและตรวจสอบทุกที่ที่จำเป็นหากมีการเริ่มต้นชั้นเรียน ถ้าไม่ฉันจะโยนข้อยกเว้นว่า "ชั้นไม่ได้เริ่มต้นคุณแน่ใจหรือว่าคุณโทร.Initialize(string,string)?" ฉันค่อนข้างโอเคกับวิธีการนี้ แต่มันนำไปสู่โค้ดจำนวนมากที่ถูกคอมไพล์และในที่สุดก็ไม่จำเป็นสำหรับผู้ใช้ปลายทาง นอกจากนี้บางครั้งรหัสก็ยิ่งมากขึ้นเมื่อมีวิธีการมากกว่าการInitiliazeโทร ฉันพยายามทำให้ชั้นเรียนของฉันมีวิธีการ / การกระทำสาธารณะไม่มากเกินไป แต่นั่นก็ไม่ได้แก้ปัญหา แต่ก็ทำให้มันสมเหตุสมผล สิ่งที่ฉันกำลังมองหาคือ วิธีการของฉันถูกต้องหรือไม่ มีดีกว่าไหม พวกคุณทำอะไร / ให้คำแนะนำ? ฉันพยายามที่จะแก้ปัญหาที่ไม่ใช่ปัญหาหรือไม่? ฉันได้รับการบอกเล่าจากเพื่อนร่วมงานว่าเป็นโปรแกรมเมอร์ที่จะตรวจสอบชั้นเรียนก่อนที่จะพยายามใช้ ฉันไม่เห็นด้วยอย่างเคารพ แต่นั่นเป็นอีกเรื่องที่ฉันเชื่อ พูดง่ายๆก็คือฉันกำลังพยายามหาวิธีที่จะไม่ลืมที่จะโทรออกเมื่อมีการนำคลาสนั้นมาใช้ในภายหลังหรือโดยคนอื่น การจำแนก: เพื่อชี้แจงคำถามมากมายที่นี่: ฉันไม่เพียง แต่พูดถึงส่วนเริ่มต้นของชั้นเรียนเท่านั้น แต่ยังเป็นตลอดชีวิต ป้องกันไม่ให้เพื่อนร่วมงานเรียกวิธีการสองครั้งตรวจสอบให้แน่ใจว่าพวกเขาเรียก X …

3
ทำไม Python เขียนใน C และไม่ใช่ C ++
ในแบบฝึกหัดของ Python ผู้คนสามารถอ่านได้ว่าการนำ Python ไปใช้ใน C คือ ในทางกลับกันการใช้งาน Python ที่เขียนด้วยภาษา C, (... ) ฉันสงสัยมากว่าทำไม Python เขียนใน C ไม่ใช่ C ++ ฉันต้องการทราบเหตุผลของการตัดสินใจครั้งนี้และคำตอบควรได้รับการสนับสนุนโดยการอ้างอิงทางประวัติศาสตร์ (และไม่ใช่ความคิดเห็นตาม)

5
ทำไมมีคอมไพเลอร์ C น้อยมาก?
C เป็นหนึ่งในภาษาที่ใช้กันอย่างแพร่หลายมากที่สุดในโลก มันคิดเป็นสัดส่วนใหญ่ของรหัสที่มีอยู่และยังคงใช้สำหรับรหัสใหม่จำนวนมหาศาล เป็นที่ชื่นชอบของผู้ใช้มันบอกอย่างกว้างขวางว่าความสามารถในการเรียกใช้ C คือคำจำกัดความที่ไม่เป็นทางการของแพลตฟอร์มและได้รับคำชมจากแฟน ๆ ว่าเป็นภาษา "เล็ก" ที่มีคุณสมบัติค่อนข้างสะอาด แล้วคอมไพเลอร์ทั้งหมดอยู่ที่ไหน? บนเดสก์ท็อปมีสอง (แนบเนียน) สอง : GCC และเสียงดังกราว ลองคิดดูสักสองสามวินาทีคุณอาจจำได้ว่า Intel มีอยู่เช่นกัน มีคนอื่นไม่กี่คนที่คลุมเครือเกินกว่าที่คนทั่วไปจะตั้งชื่อและแทบจะไม่รบกวนการสนับสนุนภาษารุ่นล่าสุด (หรือบ่อยครั้งที่แม้แต่กลุ่มย่อยภาษาที่กำหนดไว้อย่างชัดเจนเพียงแค่ "ชุดย่อย") ครึ่งหนึ่งของสมาชิกในรายการนี้เป็นเชิงอรรถเชิงประวัติศาสตร์ ที่เหลือส่วนใหญ่มีความเชี่ยวชาญเป็นพิเศษและยังไม่ได้ใช้ภาษาเต็มรูปแบบ ที่จริงมีน้อยมากที่ดูเหมือนจะเป็นโอเพ่นซอร์ส Scheme และ Forth - ภาษาขนาดเล็กอื่น ๆ ที่แฟน ๆ ชื่นชอบ - อาจมีคอมไพเลอร์มากกว่าผู้ใช้จริง แม้บางอย่างเช่นSMLมี "ร้ายแรง" การใช้งานให้เลือกระหว่างกว่าองศาเซลเซียสในขณะที่การประกาศของคอมไพเลอร์ใหม่ (ยังไม่เสร็จ) C เล็งไปที่การตรวจสอบจริงเห็นตอบสนองเชิงลบบางสวยและการใช้งานที่มีประสบการณ์ต่อสู้เพื่อให้ได้ร่วมสมทบมากพอที่จะได้จับได้ถึง C99 ทำไม? การติดตั้ง C ยากไหม ไม่ใช่ C …

6
เหตุใด C # จึงสร้างด้วยคำหลัก“ ใหม่” และ“ เสมือน + แทนที่” ซึ่งไม่เหมือนกับ Java
ใน Java ไม่มีvirtual, new, overrideคำหลักสำหรับความหมายวิธีการ ดังนั้นการทำงานของวิธีจึงง่ายต่อการเข้าใจ สาเหตุถ้าDerivedClassขยายBaseClassและมีเมธอดที่มีชื่อเดียวกันและลายเซ็นเดียวกันของBaseClass การแทนที่จะเกิดขึ้นที่ polymorphism แบบรันไทม์ (จัดเตรียมเมธอดไม่ใช่static) BaseClass bcdc = new DerivedClass(); bcdc.doSomething() // will invoke DerivedClass's doSomething method. ตอนนี้มาถึง C # จะมีความสับสนมากและยากที่จะเข้าใจวิธีการnewหรือvirtual+deriveหรือใหม่ + เสมือนแทนที่คือการทำงาน ฉันไม่สามารถเข้าใจว่าทำไมในโลกนี้ฉันจะเพิ่มวิธีการในDerivedClassชื่อและลายเซ็นเดียวกันกับBaseClassและกำหนดพฤติกรรมใหม่ แต่ที่ polymorphism เวลาทำงานBaseClassวิธีการจะถูกเรียก! (ซึ่งไม่ใช่การเอาชนะ แต่ควรมีเหตุผล) ในกรณีที่virtual + overrideแม้ว่าการใช้งานเชิงตรรกะที่ถูกต้อง แต่โปรแกรมเมอร์ต้องคิดว่าวิธีการที่เขาควรให้สิทธิ์แก่ผู้ใช้ในการแทนที่ในเวลาที่เข้ารหัส ซึ่งมีข้อดีบางอย่าง(อย่าไปที่นั่นตอนนี้) เหตุใดใน C # จึงมีพื้นที่เหลือเฟือสำหรับการใช้เหตุผลและความสับสน ดังนั้นฉันจึงอาจ reframe คำถามของฉันเป็นที่บริบทของโลกแห่งความจริงฉันควรคิดว่าการใช้งานvirtual + overrideแทนnewและยังใช้newแทนvirtual + …

3
จุดของรูปแบบ PImpl คืออะไรในขณะที่เราสามารถใช้ส่วนต่อประสานเพื่อจุดประสงค์เดียวกันใน C ++
ฉันเห็นซอร์สโค้ดจำนวนมากซึ่งใช้ PImpl idiom ใน C ++ ฉันถือว่ามันมีวัตถุประสงค์เพื่อซ่อนข้อมูลส่วนตัว / ประเภท / การใช้งานเพื่อให้สามารถลบการพึ่งพาและลดปัญหาการรวบรวมเวลาและส่วนหัวรวมถึงปัญหา แต่อินเทอร์เฟซ / คลาสเพียว - นามธรรมใน C ++ ยังมีความสามารถนี้พวกเขายังสามารถใช้เพื่อซ่อนข้อมูล / ประเภท / การใช้งาน และเพื่อให้ผู้โทรเห็นส่วนต่อประสานเมื่อสร้างวัตถุเราสามารถประกาศเมธอดจากโรงงานในส่วนหัวของส่วนต่อประสาน การเปรียบเทียบคือ: ราคา : ค่าใช้จ่ายในการใช้อินเตอร์เฟสลดลงเนื่องจากคุณไม่จำเป็นต้องใช้ฟังก์ชั่น wrapper สาธารณะซ้ำvoid Bar::doWork() { return m_impl->doWork(); }คุณเพียงแค่ต้องกำหนดลายเซ็นในอินเตอร์เฟส เข้าใจดี : เทคโนโลยีอินเทอร์เฟซเป็นที่เข้าใจกันดีกว่าโดยนักพัฒนา C ++ ทุกคน ประสิทธิภาพ : วิธีการเชื่อมต่อประสิทธิภาพไม่เลวร้ายยิ่งกว่าสำนวน PImpl ทั้งการเข้าถึงหน่วยความจำเพิ่มเติม ฉันถือว่าประสิทธิภาพเหมือนกัน ต่อไปนี้เป็นรหัสเทียมเพื่อแสดงคำถามของฉัน: // Forward …

2
Common LISP ใดที่ใช้งาน? [ปิด]
ดูเหมือนว่าจะมีปัญหาในทันทีโดยเริ่มพัฒนาใน Common LISP: การเลือกใช้งาน เราควรคำนึงถึงอะไรบ้างและควรคำนึงถึงน้ำหนักเท่าใดเมื่อพิจารณาการนำ CL มาใช้ ควรเป็นไปตามมาตรฐาน ANSI หรือไม่ ควรได้รับการสนับสนุนโดย SLIME หรือไม่ การใช้งานบางอย่างไม่มีห้องสมุดที่ดีมีเอกสาร ฯลฯ

2
วิธีที่เหมาะสมในการทำ REST คืออะไร
ทุกคนในปัจจุบันทำSOAแม้ว่าบางคนจะไม่เข้าใจสิ่งที่เป็นจริง ดังนั้นพวกเขาจึงทำผิด การใช้สิ่งนั้นเป็นการเปรียบเทียบฉันรู้ว่าRESTคืออะไร(หรืออย่างน้อยฉันก็คิดว่าฉันทำ) และต้องการทำบางอย่าง แต่ฉันต้องการที่จะทำมันถูกต้อง ดังนั้นคำถามของฉันคือวิธีที่เหมาะสมในการทำ REST คืออะไร

5
การนำอินเตอร์เฟสไปใช้เมื่อคุณไม่ต้องการคุณสมบัติใดคุณสมบัติหนึ่ง
ตรงไปตรงมาสวย ฉันกำลังใช้อินเทอร์เฟซ แต่มีคุณสมบัติหนึ่งที่ไม่จำเป็นสำหรับคลาสนี้และอันที่จริงแล้วไม่ควรใช้ แนวคิดแรกของฉันคือทำสิ่งที่ชอบ: int IFoo.Bar { get { raise new NotImplementedException(); } } ฉันคิดว่าไม่มีอะไรผิดปกติกับเรื่องนี้ แต่มันก็ไม่รู้สึก "ถูก" มีใครเคยเจอสถานการณ์ที่คล้ายกันมาก่อนหรือไม่ ถ้าเป็นเช่นนั้นคุณเข้าหามันได้อย่างไร?

6
มีข้อได้เปรียบอะไรบ้างจากการใช้งาน LINQ ในลักษณะที่ไม่ได้แคชผลลัพธ์
นี่เป็นข้อผิดพลาดที่ทราบกันดีสำหรับผู้ที่เปียกปอนโดยใช้ LINQ: public class Program { public static void Main() { IEnumerable<Record> originalCollection = GenerateRecords(new[] {"Jesse"}); var newCollection = new List<Record>(originalCollection); Console.WriteLine(ContainTheSameSingleObject(originalCollection, newCollection)); } private static IEnumerable<Record> GenerateRecords(string[] listOfNames) { return listOfNames.Select(x => new Record(Guid.NewGuid(), x)); } private static bool ContainTheSameSingleObject(IEnumerable<Record> originalCollection, List<Record> newCollection) { return originalCollection.Count() == 1 && …

6
ผู้เขียนหมายถึงอะไรโดยการส่งอินเทอร์เฟซอ้างอิงไปยังการใช้งานใด ๆ
ผมอยู่ในขั้นตอนของการพยายามที่จะโท C # ดังนั้นฉันอ่านรหัสผ่าน Adaptive C #โดยแกรี่แมคลีนฮอลล์ เขาเขียนเกี่ยวกับรูปแบบและรูปแบบการต่อต้าน ในการใช้งานกับส่วนต่อประสานเขาเขียนต่อไปนี้: นักพัฒนาที่ยังใหม่กับแนวคิดของการเขียนโปรแกรมไปยังอินเทอร์เฟซมักมีปัญหาในการปล่อยสิ่งที่อยู่เบื้องหลังอินเทอร์เฟซ ณ เวลารวบรวมไคลเอนต์ของอินเทอร์เฟซใด ๆ ควรมีความคิดที่ไม่มีการใช้งานของอินเทอร์เฟซที่ใช้ ความรู้ดังกล่าวสามารถนำไปสู่ข้อสันนิษฐานที่ไม่ถูกต้องซึ่งทำให้คู่ลูกค้าใช้งานอินเทอร์เฟซเฉพาะ ลองนึกภาพตัวอย่างทั่วไปที่คลาสต้องการบันทึกเรกคอร์ดในที่เก็บข้อมูลถาวร ในการทำเช่นนั้นจะมอบสิทธิ์อย่างถูกต้องให้กับส่วนต่อประสานซึ่งซ่อนรายละเอียดของกลไกการจัดเก็บข้อมูลถาวรที่ใช้ อย่างไรก็ตามมันจะไม่ถูกต้องที่จะตั้งสมมติฐานใด ๆ เกี่ยวกับการใช้งานของอินเตอร์เฟซที่ถูกใช้ในเวลาทำงาน ยกตัวอย่างเช่นการหล่ออ้างอิงอินเตอร์เฟซในการดำเนินการใด ๆ ที่เป็นเสมอความคิดที่ดี อาจเป็นกำแพงภาษาหรือการขาดประสบการณ์ของฉัน แต่ฉันไม่เข้าใจความหมาย นี่คือสิ่งที่ฉันเข้าใจ: ฉันมีโครงการสนุก ๆ เพื่อฝึก C # ที่นั่นฉันมีชั้นเรียน: public class SomeClass... คลาสนี้ถูกใช้ในหลายสถานที่ ในขณะที่เรียนรู้ C # ฉันอ่านว่ามันเป็นนามธรรมที่ดีกว่าด้วยส่วนต่อประสานดังนั้นฉันจึงทำสิ่งต่อไปนี้ public interface ISomeClass <- Here I made a "contract" of …

2
การใช้ DDD: ผู้ใช้และการอนุญาต
ฉันกำลังทำงานกับแอปพลิเคชันขนาดเล็กที่พยายามเข้าใจหลักการของการออกแบบที่ขับเคลื่อนด้วยโดเมน หากประสบความสำเร็จนี่อาจเป็นโครงการนำร่องสำหรับโครงการขนาดใหญ่ ฉันกำลังพยายามติดตามหนังสือ "ใช้การออกแบบโดเมนขับเคลื่อนด้วย" (โดย Vaughn Vernon) และพยายามใช้ฟอรัมสนทนาที่คล้ายกันและเรียบง่าย ฉันได้ลองดูตัวอย่าง IDDD ของ GitHub ฉันมีปัญหาในการใช้ข้อมูลประจำตัวและการเข้าถึงกรณีของฉัน ให้ฉันให้ข้อมูลพื้นหลัง: ฉัน (หวังว่า) เข้าใจเหตุผลที่อยู่เบื้องหลังการแยกผู้ใช้และตรรกะการอนุญาต: มันเป็นโดเมนที่สนับสนุนและเป็นบริบทที่แตกต่างกัน ในโดเมนหลักไม่มีผู้ใช้เพียงแค่ผู้สร้างผู้ดูแล ฯลฯ สิ่งเหล่านี้ถูกสร้างขึ้นโดยการเข้าถึงบริบทผู้ใช้และการเข้าถึงโดยใช้บริการจากนั้นจึงแปลวัตถุผู้ใช้ที่ได้รับและผู้ดูแล การดำเนินการกับโดเมนจะถูกเรียกพร้อมกับบทบาทที่เกี่ยวข้องเป็นพารามิเตอร์: เช่น: ModeratePost( ..., moderator); วิธีการของวัตถุโดเมนตรวจสอบว่าอินสแตนซ์ของโมเดอเรเตอร์ที่กำหนดไม่ใช่โมฆะ (อินสแตนซ์ของโมเดอเรเตอร์จะเป็นโมฆะถ้าผู้ใช้ที่ถามจากบริบทผู้ใช้และบริบทไม่มีบทบาทผู้ดูแล) ในกรณีหนึ่งจะทำการตรวจสอบเพิ่มเติมก่อนที่จะแก้ไขโพสต์: if (forum.IsModeratedby(moderator)) คำถามของฉันคือ: ในกรณีหลังความกังวลด้านความปลอดภัยไม่ได้รวมกันอีกครั้งในโดเมนหลัก? ก่อนหน้านี้หนังสือระบุว่า "ใครสามารถโพสต์หัวข้อหรือภายใต้เงื่อนไขที่อนุญาตฟอรั่มเพียงแค่ต้องรู้ว่าผู้แต่งกำลังทำเช่นนั้นในตอนนี้" การนำไปใช้ตามบทบาทในหนังสือเล่มนี้ค่อนข้างตรงไปตรงมา: เมื่อ Moderator เป็นโดเมนหลักพยายามแปลง userId ปัจจุบันเป็น Moderator หรือเป็นผู้เขียนเมื่อต้องการ บริการจะตอบกลับด้วยอินสแตนซ์ที่เหมาะสมหรือเป็นโมฆะหากผู้ใช้ไม่มีบทบาทที่จำเป็น อย่างไรก็ตามฉันไม่สามารถเห็นได้ว่าฉันจะปรับให้เข้ากับรูปแบบการรักษาความปลอดภัยที่ซับซ้อนมากขึ้นได้อย่างไร โครงการปัจจุบันของเราที่ฉันกำลังดำเนินการอยู่นั้นมีรูปแบบที่ค่อนข้างซับซ้อนกับกลุ่ม ACL ฯลฯ แม้จะมีกฎที่ไม่ซับซ้อนมากเช่น: "โพสต์ควรแก้ไขโดยเจ้าของหรือบรรณาธิการเท่านั้น" …

3
ข้อแตกต่างระหว่าง ref และ out ใน runtime คืออะไร?
C # จัดให้มีrefและoutคำหลักเพื่อสร้างอาร์กิวเมนต์ที่จะส่งผ่านโดยการอ้างอิง ความหมายของทั้งสองนั้นคล้ายกันมาก ข้อแตกต่างเพียงอย่างเดียวคือการเริ่มต้นของตัวแปร flaged: refต้องการตัวแปรที่จะเริ่มต้นก่อนที่จะส่งผ่านไปยังฟังก์ชั่นoutไม่ได้ outต้องการตัวแปรที่จะเริ่มต้นภายในฟังก์ชั่นrefไม่ได้ กรณีการใช้งานของคำหลักสองคำนี้ก็เกือบจะเหมือนกันและการใช้งานที่บ่อยเกินไปของพวกเขาคือฉันเชื่อว่ามีกลิ่นรหัส (แม้ว่าจะมีกรณีการใช้ที่ถูกต้องเช่นTryParseและTryGetValueรูปแบบ) ด้วยเหตุนี้ใครบางคนสามารถอธิบายได้ว่าทำไมมีเครื่องมือสองอย่างที่คล้ายกันมากใน C # สำหรับกรณีการใช้งานที่แคบมาก? นอกจากนี้ในMSDNมีการระบุว่าพวกเขามีพฤติกรรมการใช้งานที่แตกต่างกัน: แม้ว่าคีย์เวิร์ด ref และ out จะทำให้เกิดพฤติกรรมรันไทม์ที่แตกต่างกัน แต่ก็ไม่ได้พิจารณาว่าเป็นส่วนหนึ่งของลายเซ็นเมธอดในเวลารวบรวม พฤติกรรมรันไทม์ของพวกเขาแตกต่างกันอย่างไร ข้อสรุป คำตอบทั้งสองนั้นดูถูกต้องขอบคุณทั้งคู่ ฉันยอมรับjmorenoเพราะชัดเจนกว่า

4
อนุญาตให้ใช้งานส่วนติดต่ออย่างชัดเจนเพื่อซ่อนสมาชิกใน C # ได้หรือไม่
ฉันเข้าใจวิธีการทำงานกับอินเตอร์เฟสและการใช้อินเตอร์เฟสอย่างชัดเจนใน C # แต่ฉันสงสัยว่ามันถือว่าเป็นรูปแบบที่ไม่ดีเพื่อซ่อนสมาชิกบางคนที่ไม่ได้ใช้บ่อย ตัวอย่างเช่น: public interface IMyInterface { int SomeValue { get; set; } int AnotherValue { get; set; } bool SomeFlag { get; set; } event EventHandler SomeValueChanged; event EventHandler AnotherValueChanged; event EventHandler SomeFlagChanged; } ฉันรู้ล่วงหน้าว่ากิจกรรมในขณะที่มีประโยชน์จะไม่ค่อยได้ใช้ ดังนั้นฉันคิดว่ามันจะสมเหตุสมผลที่จะซ่อนพวกเขาออกจากชั้นเรียนการใช้งานผ่านการใช้งานอย่างชัดเจนเพื่อหลีกเลี่ยงความไม่เป็นระเบียบของ IntelliSense

1
โดยทั่วไปแล้วตัวจัดการเหตุการณ์ทำงานอย่างไร
นี่คือหัวข้อทั่วไป, ตัวจัดการเหตุการณ์ทำงานอย่างไร นี่หมายถึงเบื้องหลัง - จะเกิดอะไรขึ้นเมื่อสร้างขึ้น ฉันมีความคิดคร่าวๆ - แต่ต้องการที่จะได้รับการยืนยัน

4
วิธีจัดระเบียบอินเทอร์เฟซและการนำไปใช้ใน C ++
ฉันได้เห็นว่ามีกระบวนทัศน์ที่แตกต่างกันใน C ++ เกี่ยวกับสิ่งที่จะเข้าไปในไฟล์ส่วนหัวและสิ่งที่จะ cpp ไฟล์ AFAIK ผู้คนส่วนใหญ่โดยเฉพาะผู้ที่อยู่ในพื้นหลัง C ทำ: foo.h class foo { private: int mem; int bar(); public: foo(); foo(const foo&); foo& operator=(foo); ~foo(); } foo.cpp #include foo.h foo::bar() { return mem; } foo::foo() { mem = 42; } foo::foo(const foo& f) { mem = f.mem; } foo::operator=(foo …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.