From 1b18a285b048a8a3a80e688995a8280483a429fb Mon Sep 17 00:00:00 2001 From: Marrub Date: Fri, 2 Dec 2016 09:24:20 -0500 Subject: [PATCH] ass --- ptrtest.cpp | 13 +++++++++++++ ptrtest2.cpp | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 ptrtest.cpp create mode 100644 ptrtest2.cpp diff --git a/ptrtest.cpp b/ptrtest.cpp new file mode 100644 index 0000000..27f0b7a --- /dev/null +++ b/ptrtest.cpp @@ -0,0 +1,13 @@ +#include +#include + +#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;}; +class Derived : public Base {public: GenPrint(Derived)}; + +int main() {A a; a.base.reset(new Derived());} + diff --git a/ptrtest2.cpp b/ptrtest2.cpp new file mode 100644 index 0000000..dfbda71 --- /dev/null +++ b/ptrtest2.cpp @@ -0,0 +1,13 @@ +#include +#include + +#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;}; +class Derived : public Base {public: GenPrint(Derived)}; + +int main() {A a; a.base.reset(new Derived());} +