mobile theme mode icon
theme mode light icon theme mode dark icon
Random Question สุ่ม
speech play
speech pause
speech stop

วิธีแก้ไขข้อผิดพลาด "ไม่มีตัวสร้างเริ่มต้น" ในC++

"เบี่ยงเบน" ในบริบทนี้หมายความว่าลักษณะการทำงานที่คาดหวังของโค้ดมีการเปลี่ยนแปลง และไม่เป็นไปตามรูปแบบที่คาดไว้อีกต่อไป กล่าวอีกนัยหนึ่ง โค้ดเบี่ยงเบนไปจากเส้นทางที่ต้องการ ปัญหาที่คุณกำลังเผชิญมีสาเหตุมาจากข้อเท็จจริงที่ว่า `std::vector` ไม่มีตัวสร้างเริ่มต้น ดังนั้นเมื่อคุณพยายามสร้างอินสแตนซ์ของ `MyVector ` หากไม่มีข้อโต้แย้งใด ๆ คอมไพเลอร์จะไม่สามารถสร้างวัตถุได้ ในการแก้ไขปัญหานี้ คุณสามารถเพิ่มตัวสร้างเริ่มต้นให้กับคลาส `MyVector` ของคุณที่เริ่มต้นเวกเตอร์ด้วยรายการว่าง:
```
class MyVector {
std::vector myVector;
public:
MyVector() : myVector{} {} // default Constructor
// ... other method ...
};
```
This จะอนุญาตให้คุณสร้างอินสแตนซ์ ของ `MyVector` โดยไม่มีข้อโต้แย้งใดๆ และวัตถุจะถูกสร้างขึ้นอย่างถูกต้อง

อีกทางหนึ่ง คุณยังสามารถเพิ่มตัวสร้างที่ไม่มีการโต้แย้งและเริ่มต้นเวกเตอร์ด้วยรายการว่าง:
```
class MyVector {
std::vector< int> myVector;
public:
MyVector(const std::vector&) {} // default Constructor
MyVector() : myVector({}) {} // default Constructor
// ... other method ...
};
```
สิ่งนี้ยังช่วยให้คุณสร้างอินสแตนซ์ของ `MyVector` โดยไม่มีข้อโต้แย้งใดๆ และวัตถุจะถูกสร้างขึ้นอย่างถูกต้อง

Knowway.org ใช้คุกกี้เพื่อให้บริการที่ดีขึ้นแก่คุณ การใช้ Knowway.org แสดงว่าคุณยอมรับการใช้คุกกี้ของเรา สำหรับข้อมูลโดยละเอียด คุณสามารถอ่านข้อความ นโยบายคุกกี้ ของเรา close-policy