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