Ownership
Destructors
A destructor runs automatically when an object is destroyed.
Destructors
destructors.cpp
#include <iostream>
#include <string>
class Tracker {
private:
std::string label;
public:
Tracker(std::string name) {
label = name;
std::cout << "create=" << label << std::endl;
}
~Tracker() {
std::cout << "destroy=" << label << std::endl;
}
void use() {
std::cout << "use=" << label << std::endl;
}
};
int main() {
std::string label = ;
Tracker tracker(label);
tracker.use();
return 0;
}
#include <iostream>
#include <string>
class Tracker {
private:
std::string label;
public:
Tracker(std::string name) {
label = name;
std::cout << "create=" << label << std::endl;
}
~Tracker() {
std::cout << "destroy=" << label << std::endl;
}
void use() {
std::cout << "use=" << label << std::endl;
}
};
int main() {
std::string label = ;
Tracker tracker(label);
tracker.use();
return 0;
}
#include <iostream>
#include <string>
class Tracker {
private:
std::string label;
public:
Tracker(std::string name) {
label = name;
std::cout << "create=" << label << std::endl;
}
~Tracker() {
std::cout << "destroy=" << label << std::endl;
}
void use() {
std::cout << "use=" << label << std::endl;
}
};
int main() {
std::string label = ;
Tracker tracker(label);
tracker.use();
return 0;
}
destructor
A destructor starts with `~` and usually releases or closes something owned by the object.