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

การสร้างอินสแตนซ์เป็นกระบวนการสร้างอ็อบเจ็กต์จากคลาสในภาษาเชิงวัตถุและภาษาที่อิงอ็อบเจ็กต์ ในภาษา C ++ การสร้างอินสแตนซ์เป็นกระบวนการสร้างคลาสหรือฟังก์ชันจากเทมเพลตคลาสหรือเทมเพลตฟังก์ชัน

30
วิธีการสร้างอาร์เรย์ทั่วไปใน Java?
เนื่องจากการใช้งานจาวา generics คุณไม่สามารถมีรหัสเช่นนี้: public class GenSet<E> { private E a[]; public GenSet() { a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation } } ฉันจะใช้สิ่งนี้ในขณะที่รักษาความปลอดภัยประเภทได้อย่างไร ฉันเห็นวิธีแก้ไขปัญหาในฟอรัม Java ที่เป็นเช่นนี้: import java.lang.reflect.Array; class Stack<T> { public Stack(Class<T> clazz, int capacity) { array = (T[])Array.newInstance(clazz, capacity); } private final T[] array; } แต่ฉันไม่เข้าใจว่าเกิดอะไรขึ้น

5
เหตุใด [] จึงเร็วกว่ารายการ ()
ฉันเพิ่งเทียบความเร็วการประมวลผลของ[]และlist()และรู้สึกประหลาดใจที่พบว่า[]วิ่งเกินสามครั้งเร็วlist()กว่า ฉันทำการทดสอบเดียวกันด้วย{}และdict()ผลลัพธ์ก็เหมือนกันจริง: []และ{}ทั้งคู่ใช้เวลาประมาณ 0.128 วินาที / ล้านรอบในขณะที่list()และdict()ใช้เวลาประมาณ 0.428 วินาที / ล้านรอบ ทำไมนี้ ทำ[]และ{}(และอาจจะ()และ''ด้วย) ทันทีส่งกลับสำเนาของบางตัวอักษรหุ้นที่ว่างเปล่าในขณะที่ลูกน้องอย่างชัดเจนชื่อของพวกเขา ( list(), dict(), tuple(), str()) อย่างเต็มที่ไปเกี่ยวกับการสร้างวัตถุหรือไม่ว่าพวกเขาเป็นจริงมีองค์ประกอบ? ฉันไม่รู้ว่าทั้งสองวิธีต่างกันอย่างไร แต่ฉันชอบที่จะรู้ ฉันไม่พบคำตอบในเอกสารหรือบน SO และการค้นหาวงเล็บว่างเปล่ากลายเป็นปัญหามากกว่าที่ฉันคาดไว้ ฉันได้ผลลัพธ์ตามกำหนดเวลาโดยการโทรtimeit.timeit("[]")และtimeit.timeit("list()")และtimeit.timeit("{}")และtimeit.timeit("dict()")เพื่อเปรียบเทียบรายการและพจนานุกรมตามลำดับ ฉันใช้ Python 2.7.9 เมื่อเร็ว ๆ นี้ฉันค้นพบ " ทำไมถ้า True ช้ากว่าถ้า 1? " ที่เปรียบเทียบประสิทธิภาพของif Trueการif 1และดูเหมือนว่าจะได้สัมผัสกับสถานการณ์ตามตัวอักษรและทั่วโลกที่คล้ายกัน บางทีมันก็คุ้มค่าที่จะพิจารณาเช่นกัน

10
การสร้างอินสแตนซ์โดยใช้ชื่อคลาสและตัวสร้างการเรียก
มีวิธีสร้างอินสแตนซ์ของคลาสเฉพาะที่กำหนดชื่อคลาส (ไดนามิก) และส่งพารามิเตอร์ไปยังตัวสร้างหรือไม่ สิ่งที่ต้องการ: Object object = createInstance("mypackage.MyClass","MyAttributeValue"); ที่ไหนเป็นอาร์กิวเมนต์คอนสตรัคของ"MyAttributeValue"MyClass


9
มีวิธีในการยกตัวอย่างวัตถุจากสตริงที่มีชื่อชั้นของพวกเขาหรือไม่?
ฉันมีไฟล์: Base.h class Base; class DerivedA : public Base; class DerivedB : public Base; /*etc...*/ และไฟล์อื่น: BaseFactory.h #include "Base.h" class BaseFactory { public: BaseFactory(const string &sClassName){msClassName = sClassName;}; Base * Create() { if(msClassName == "DerivedA") { return new DerivedA(); } else if(msClassName == "DerivedB") { return new DerivedB(); } else …

8
ไม่สามารถใช้สมาชิกอินสแตนซ์ในประเภท
ฉันมีคลาสต่อไปนี้: class ReportView: NSView { var categoriesPerPage = [[Int]]() var numPages: Int = { return categoriesPerPage.count } } การคอมไพล์ล้มเหลวด้วยข้อความ: ไม่สามารถใช้สมาชิกอินสแตนซ์ 'categoryPerPage' กับประเภท 'ReportView' สิ่งนี้หมายความว่า?

4
ฉันจะเขียน init ที่กำหนดเองสำหรับคลาสย่อย UIView ใน Swift ได้อย่างไร
บอกว่าผมต้องการที่จะsubclass ด้วยและinitUIViewStringInt ฉันจะทำเช่นนี้ในสวิฟท์ถ้าฉันแค่ subclassing UIView? ถ้าฉันแค่สร้างinit()ฟังก์ชันที่กำหนดเองแต่พารามิเตอร์เป็น String และ Int มันจะบอกฉันว่า "super.init () ไม่ได้ถูกเรียกก่อนกลับจาก initializer" และถ้าฉันโทรไปsuper.init()ฉันบอกว่าฉันต้องใช้ตัวเริ่มต้นที่กำหนด ฉันควรใช้อะไรที่นั่น? รุ่นเฟรม? รุ่น coder? ทั้งสอง? ทำไม?

9
การสร้างอินสแตนซ์วัตถุ C ++
ฉันเป็นโปรแกรมเมอร์ C ที่พยายามเข้าใจ C ++ บทช่วยสอนจำนวนมากแสดงให้เห็นถึงการสร้างอินสแตนซ์อ็อบเจ็กต์โดยใช้ข้อมูลโค้ดเช่น: Dog* sparky = new Dog(); ซึ่งหมายความว่าในภายหลังคุณจะทำ: delete sparky; ซึ่งสมเหตุสมผล ตอนนี้ในกรณีที่ไม่จำเป็นต้องมีการจัดสรรหน่วยความจำแบบไดนามิกมีเหตุผลใดที่จะใช้สิ่งที่กล่าวมาแทน Dog sparky; และปล่อยให้ผู้ทำลายถูกเรียกเมื่อประกายไฟออกไปนอกขอบเขต? ขอบคุณ!
113 c++  instantiation 

3
`ฟังก์ชันใหม่ ()` ด้วยตัวพิมพ์เล็ก“ f” ใน JavaScript
เพื่อนร่วมงานของฉันใช้ "ฟังก์ชันใหม่ ()" ด้วยตัวพิมพ์เล็ก "f" เพื่อกำหนดวัตถุใหม่ใน JavaScript ดูเหมือนว่าจะทำงานได้ดีในเบราว์เซอร์หลัก ๆ ทั้งหมดและดูเหมือนว่าจะมีประสิทธิภาพพอสมควรในการซ่อนตัวแปรส่วนตัว นี่คือตัวอย่าง: var someObj = new function () { var inner = 'some value'; this.foo = 'blah'; this.get_inner = function () { return inner; }; this.set_inner = function (s) { inner = s; }; }; ทันทีที่ใช้ "this" จะกลายเป็นสมบัติสาธารณะของ someObj ดังนั้น someObj.foo, …

9
มีวิธีสร้างอินสแตนซ์คลาสตามชื่อใน Java หรือไม่?
ฉันกำลังมองหาคำถาม: สร้างอินสแตนซ์คลาสจากชื่อสตริงซึ่งอธิบายถึงวิธีการสร้างอินสแตนซ์คลาสเมื่อมีชื่อ มีวิธีทำใน Java ไหม? ฉันจะมีชื่อแพ็กเกจและชื่อคลาสและฉันต้องสามารถสร้างอ็อบเจกต์ที่มีชื่อเฉพาะนั้นได้

4
การสร้างอินสแตนซ์ประเภทโดยไม่มีตัวสร้างเริ่มต้นใน C # โดยใช้การสะท้อน
ยกตัวอย่างชั้นเรียนต่อไปนี้: class Sometype { int someValue; public Sometype(int someValue) { this.someValue = someValue; } } จากนั้นฉันต้องการสร้างอินสแตนซ์ประเภทนี้โดยใช้การสะท้อน: Type t = typeof(Sometype); object o = Activator.CreateInstance(t); โดยปกติสิ่งนี้จะใช้งานได้อย่างไรก็ตามเนื่องจากSomeTypeไม่ได้กำหนดคอนสตรัคเตอร์แบบไม่มีพารามิเตอร์การเรียกใช้Activator.CreateInstanceจะทำให้เกิดข้อยกเว้นของประเภทที่MissingMethodExceptionมีข้อความ " ไม่มีตัวสร้างที่ไม่มีพารามิเตอร์กำหนดไว้สำหรับอ็อบเจ็กต์นี้ " มีวิธีอื่นในการสร้างอินสแตนซ์ของประเภทนี้หรือไม่ มันเป็นเรื่องที่แย่มากที่จะเพิ่มตัวสร้างแบบไม่มีพารามิเตอร์ให้กับทุกชั้นเรียนของฉัน

7
python มีคุณสมบัติเทียบเท่ากับ Java Class.forName () หรือไม่
ฉันมีความต้องการที่จะใช้อาร์กิวเมนต์สตริงและสร้างวัตถุของคลาสที่มีชื่อในสตริงนั้นใน Python ใน Java ฉันจะใช้Class.forName().newInstance(). มีความเท่าเทียมกันใน Python หรือไม่? ขอบคุณสำหรับคำตอบ เพื่อตอบผู้ที่ต้องการทราบว่าฉันกำลังทำอะไรอยู่: ฉันต้องการใช้อาร์กิวเมนต์บรรทัดคำสั่งเป็นชื่อคลาสและสร้างอินสแตนซ์ จริงๆแล้วฉันกำลังเขียนโปรแกรมใน Jython และสร้างอินสแตนซ์คลาส Java ด้วยเหตุนี้ Java-ness ของคำถาม getattr()ใช้งานได้ดี ขอบคุณมาก.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.