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

เทมเพลตสำหรับสร้างวัตถุใหม่ที่อธิบายสถานะทั่วไปและพฤติกรรม ไม่ต้องกังวลกับคลาส CSS ใช้ [css] แทน

2
ประเภทและคลาสของตัวแปร
คำถาม R สองข้อ: อะไรคือความแตกต่างระหว่างประเภท (ส่งคืนโดยtypeof) และคลาส (ส่งคืนโดยclass) ของตัวแปร? ความแตกต่างคล้ายกับในภาษา C ++ หรือไม่? ประเภทและคลาสของตัวแปรที่เป็นไปได้คืออะไร?
85 class  r  types 

2
อะไรคือความแตกต่างระหว่างคีย์เวิร์ดส่วนตัวและฟิลด์ส่วนตัวใน TypeScript?
ใน TypeScript 3.8+ ความแตกต่างระหว่างการใช้ privateคำหลักเพื่อทำเครื่องหมายสมาชิกส่วนตัวคืออะไร: class PrivateKeywordClass { private value = 1; } และใช้#ฟิลด์ส่วนตัวที่เสนอสำหรับ JavaScript : class PrivateFieldClass { #value = 1; } ฉันควรจะเลือกอันไหนมากกว่ากัน?

4
วิธีการเรียกตัวสร้างที่ถูกต้องของประเภทแม่แบบ?
ในรหัสต่อไปนี้ฉันจะทำให้บรรทัดที่มีความคิดเห็นทำงานในลักษณะเดียวกับบรรทัดที่อยู่เหนือบรรทัดได้อย่างไร Typeผมอยากจะทำให้มันเป็นโค้ดทั่วไปที่โทรคอนสตรัคที่เหมาะสมของแม่แบบ #include <string> #include <iostream> template <typename Type> struct Class { Type data; Class(Type data) : data(data) { } }; int main() { Class<std::string> a = std::string("abc"); // Class<std::string> b = "abc"; std::cout << a.data << std::endl; return 0; }

2
การกำหนดค่าเริ่มต้นตัวแปร Kotlin สำหรับคลาสลูกทำงานแปลกสำหรับการเริ่มต้นตัวแปรด้วยค่า 0
ฉันได้สร้างลำดับชั้นของคลาสต่อไปนี้: open class A { init { f() } open fun f() { println("In A f") } } class B : A() { var x: Int = 33 init { println("x: " + x) } override fun f() { x = 1 println("x in f: "+ x) } init { …

1
ทำไมการปรับฐานว่างเปล่าจึงถูกห้ามเมื่อคลาสฐานที่ว่างเปล่าเป็นตัวแปรสมาชิกด้วย?
การเพิ่มประสิทธิภาพฐานที่ว่างเปล่าดีมาก อย่างไรก็ตามมันมาพร้อมกับข้อ จำกัด ดังต่อไปนี้: การเพิ่มประสิทธิภาพฐานว่างเปล่าเป็นสิ่งต้องห้ามหากหนึ่งในคลาสฐานที่ว่างเปล่าเป็นชนิดหรือฐานของประเภทของข้อมูลสมาชิกไม่คงที่ครั้งแรกเนื่องจาก subobjects ฐานสองประเภทเดียวกันจะต้องมีที่อยู่ที่แตกต่างกันภายในการแสดงวัตถุ ประเภทที่ได้รับมากที่สุด เพื่ออธิบายข้อ จำกัด นี้ให้พิจารณารหัสต่อไปนี้ static_assertจะล้มเหลว ในขณะที่การเปลี่ยนแปลงอย่างใดอย่างหนึ่งFooหรือBarเพื่อสืบทอดจากBase2จะเป็นการหลีกเลี่ยงข้อผิดพลาด: #include <cstddef> struct Base {}; struct Base2 {}; struct Foo : Base {}; struct Bar : Base { Foo foo; }; static_assert(offsetof(Bar,foo)==0,"Error!"); ฉันเข้าใจพฤติกรรมนี้อย่างสมบูรณ์ สิ่งที่ฉันไม่เข้าใจคือสาเหตุพฤติกรรมนี้โดยเฉพาะอย่างยิ่งที่มีอยู่ เห็นได้ชัดว่ามีการเพิ่มเข้ามาด้วยเหตุผลเนื่องจากเป็นการเพิ่มที่ชัดเจนไม่ใช่การกำกับดูแล เหตุผลนี้คืออะไร โดยเฉพาะอย่างยิ่งทำไม subobjects ทั้งสองควรจะต้องมีที่อยู่ที่แตกต่างกัน? ในข้างต้นBarเป็นประเภทและfooเป็นตัวแปรสมาชิกประเภทนั้น ฉันไม่เห็นว่าทำไมชั้นฐานของBarเรื่องถึงชั้นฐานของประเภทfooหรือในทางกลับกัน อันที่จริงฉันมีอะไรถ้าฉันคาดหวังว่า&fooจะเป็นเช่นเดียวกับที่อยู่ของBarอินสแตนซ์ที่มีมัน - มันจะต้องอยู่ในสถานการณ์อื่น(1) (1)หลังจากทั้งหมดฉันไม่ได้ทำอะไรแฟนซีกับการvirtualสืบทอดคลาสพื้นฐานว่างเปล่าโดยไม่คำนึงถึงและการคอมไพล์ด้วยBase2แสดงว่าไม่มีอะไรแตกในกรณีนี้โดยเฉพาะ แต่ชัดเจนว่าเหตุผลนี้ไม่ถูกต้องอย่างใดอย่างหนึ่งและมีสถานการณ์อื่น ๆ …

4
วิธีที่ดีในการสร้างคลาสสำหรับประเภทการ์ดเล่นที่ซับซ้อนกว่าที่พบในสำรับมาตรฐานหรือไม่
ฉันใหม่มากสำหรับการเขียนโปรแกรมเชิงวัตถุและพยายามเริ่มเรียนรู้ด้วย python โดยการสร้างเกมไพ่อย่างง่าย (ตามที่ดูเหมือนจะเป็นแบบดั้งเดิม!) ฉันได้ทำตัวอย่างต่อไปนี้ซึ่งใช้งานได้ดีและสอนฉันเกี่ยวกับการสร้างอินสแตนซ์ของPlayingCard()คลาสที่หลากหลายเพื่อสร้างอินสแตนซ์ของDeck()คลาส: class PlayingCard(object): def __init__(self, suit, val): self.suit = suit self.value = val def print_card(self): print("{} of {}".format(self.value, self.suit)) class Deck(object): def __init__(self): self.playingcards = [] self.build() def build(self): for s in ["Spades", "Clubs", "Diamonds", "Hearts"]: for v in range(1,14): self.playingcards.append(PlayingCard(s,v)) deck = Deck() ฉันต้องการสร้างบางสิ่งบางอย่างในขณะนี้ด้วยการ์ดที่ซับซ้อนมากขึ้นไม่ใช่แค่สำรับมาตรฐาน 52 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.