ass
parent
40dd6079f5
commit
1b18a285b0
|
@ -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());}
|
||||
|
|
@ -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());}
|
||||
|
Loading…
Reference in New Issue