mirror of
https://github.com/changkun/modern-cpp-tutorial.git
synced 2025-12-17 04:34:40 +03:00
38
code/5/5.3.weak.ptr.cpp
Normal file
38
code/5/5.3.weak.ptr.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// 5.3.weak.ptr.cpp
|
||||
// chapter 05 start pointers and memory management
|
||||
// modern c++ tutorial
|
||||
//
|
||||
// created by changkun at changkun.de
|
||||
// https://github.com/changkun/modern-cpp-tutorial
|
||||
//
|
||||
|
||||
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
||||
class A;
|
||||
class B;
|
||||
|
||||
class A {
|
||||
public:
|
||||
std::shared_ptr<B> pointer;
|
||||
~A() {
|
||||
std::cout << "A was destroied" << std::endl;
|
||||
}
|
||||
};
|
||||
class B {
|
||||
public:
|
||||
std::shared_ptr<A> pointer;
|
||||
~B() {
|
||||
std::cout << "B was destroied" << std::endl;
|
||||
}
|
||||
};
|
||||
int main() {
|
||||
std::shared_ptr<A> a = std::make_shared<A>();
|
||||
std::shared_ptr<B> b = std::make_shared<B>();
|
||||
a->pointer = b;
|
||||
b->pointer = a;
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user