О
Size: a a a
О
ID
О
ID
О
IZ
struct Foo {};И попробуй выполнить.
int main() {
Foo foo;
delete &foo;
return 0;
}
О
О
О
IZ
О
IZ
О
AS
IZ
О
IZ
О
struct cluster {
shared_ptr<cluster> left,right;
weak_ptr<cluster> father;
cluster(){}
cluster(shared_ptr<cluster> left,shared_ptr<cluster> right) {
this->left = left;
this->right = right;
}
};
int main() {
auto left = make_shared<cluster>();
auto right = make_shared<cluster>();
left->father = right->father = make_shared<cluster>(left,right);
return 0;
}
О
ID
struct cluster {
shared_ptr<cluster> left,right;
weak_ptr<cluster> father;
cluster(){}
cluster(shared_ptr<cluster> left,shared_ptr<cluster> right) {
this->left = left;
this->right = right;
}
};
int main() {
auto left = make_shared<cluster>();
auto right = make_shared<cluster>();
left->father = right->father = make_shared<cluster>(left,right);
return 0;
}
weak_ptr
не участвует в подсчете владеющих ссылок