1
0
Fork 0
master
Marrub 2016-12-02 09:24:20 -05:00
parent 40dd6079f5
commit 1b18a285b0
2 changed files with 26 additions and 0 deletions

13
ptrtest.cpp Normal file
View File

@ -0,0 +1,13 @@
#include <memory>
#include <iostream>
#define GenPrint(name) \
name() {std::cout << #name "()\n";} \
~name() {std::cout << "~" #name "()\n";}
class Base {public: GenPrint(Base)};
class A {public: GenPrint(A) std::shared_ptr<Base> base;};
class Derived : public Base {public: GenPrint(Derived)};
int main() {A a; a.base.reset(new Derived());}

13
ptrtest2.cpp Normal file
View File

@ -0,0 +1,13 @@
#include <memory>
#include <iostream>
#define GenPrint(name) \
name() {std::cout << #name "()\n";} \
virtual ~name() {std::cout << "~" #name "()\n";}
class Base {public: GenPrint(Base)};
class A {public: GenPrint(A) std::unique_ptr<Base> base;};
class Derived : public Base {public: GenPrint(Derived)};
int main() {A a; a.base.reset(new Derived());}