A repository that sets up a C++ Project with the olcPixelGameEngine already loaded.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

40 lines
720 B

#include <memory>
#include <stdio.h>
class C2{
public:
int data=4;
~C2(){
printf("C2 destroyed\n");
}
};
class C1{
public:
~C1(){
printf("C1 destroyed\n");
}
void PrintData(std::weak_ptr<C2>ptr) {
printf("Data is %d\n",ptr.lock()->data);
}
};
int main(){
std::shared_ptr<C1> ptrA{std::make_shared<C1>()};
std::weak_ptr<C1>ptrA_2=ptrA;
if (!ptrA_2.expired()) {
printf("Count:%ld",ptrA.use_count());
std::shared_ptr<C1> ptrA_3{ptrA};
printf("Inside if statement.\n");
std::shared_ptr<C2> ptrB{std::make_shared<C2>()};
ptrA_2.lock()->PrintData(ptrB);
printf("Count:%ld",ptrA.use_count());
}
printf("Count:%ld",ptrA.use_count());
printf("Outside if statement.\n");
return -1;
}