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

2
เธรด C ++ ที่ใช้ฟังก์ชั่นวัตถุจะมีตัวเรียกว่า destructors หลายตัว แต่ไม่ใช่ตัวสร้าง
โปรดค้นหาข้อมูลโค้ดด้านล่าง: class tFunc{ int x; public: tFunc(){ cout<<"Constructed : "<<this<<endl; x = 1; } ~tFunc(){ cout<<"Destroyed : "<<this<<endl; } void operator()(){ x += 10; cout<<"Thread running at : "<<x<<endl; } int getX(){ return x; } }; int main() { tFunc t; thread t1(t); if(t1.joinable()) { cout<<"Thread is joining..."<<endl; t1.join(); } …

2
เหตุใด destructor จึงถูกดำเนินการสองครั้ง
#include <iostream> using namespace std; class Car { public: ~Car() { cout << "Car is destructed." << endl; } }; class Taxi :public Car { public: ~Taxi() {cout << "Taxi is destructed." << endl; } }; void test(Car c) {} int main() { Taxi taxi; test(taxi); return 0; } นี่คือผลลัพธ์ …

5
destructor ของอ็อบเจ็กต์โลคัลภายในลูปรับประกันว่าจะถูกเรียกก่อนการวนซ้ำครั้งถัดไปหรือไม่?
เมื่อฉันมีลูปและภายในลูปนี้สร้างตัวแปรสแต็กใหม่ (ไม่จัดสรรในฮีปและตัวแปรที่เก็บไว้ที่ประกาศไว้ในเนื้อความลูป) เป็นตัวทำลายของวัตถุนี้รับประกันว่าจะถูกเรียกก่อนเริ่มการทำซ้ำครั้งถัดไปหรืออาจ วนรอบการคลี่คลายโดยคอมไพเลอร์เปลี่ยนอะไรบางอย่างเกี่ยวกับที่?
11 c++  destructor 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.