From f25774ff2e3d545f785e7304adcd759e341fcb2e Mon Sep 17 00:00:00 2001 From: ioacademy-jikim Date: Thu, 14 Jun 2018 11:35:54 +0900 Subject: [PATCH] 4 --- 03_day.pptx | Bin 99269 -> 105592 bytes 03_day/sp/Android.bp | 7 ++++ 03_day/sp/a.out | Bin 13416 -> 14120 bytes 03_day/sp/sp.cpp | 68 +++++++++++++++++++++++++++++++++++ 03_day/sp/sp_1.cpp | 82 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 157 insertions(+) create mode 100644 03_day/sp/Android.bp create mode 100644 03_day/sp/sp_1.cpp diff --git a/03_day.pptx b/03_day.pptx index 225393e31148ecdf0ab19512b00741f9db55b121..c23f6566d2a66a43fb3b43c43c1c0ef922b930fe 100644 GIT binary patch delta 10766 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 diff --git a/03_day/sp/Android.bp b/03_day/sp/Android.bp new file mode 100644 index 0000000..0e8bf69 --- /dev/null +++ b/03_day/sp/Android.bp @@ -0,0 +1,7 @@ +cc_binary { + name: "my_sp", + shared_libs: ["liblog", "libutils"], + srcs: [ + "sp_1.cpp", + ], +} diff --git a/03_day/sp/a.out b/03_day/sp/a.out index 7c513b67780875471cf0454026aae78aa75523b1..a4c8bd2ad8bcdd16124b8ceae13c682a3e9f0558 100644 GIT binary patch literal 14120 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 diff --git a/03_day/sp/sp.cpp b/03_day/sp/sp.cpp index e7dbdd3..f6f49d6 100644 --- a/03_day/sp/sp.cpp +++ b/03_day/sp/sp.cpp @@ -1,6 +1,74 @@ #if 1 #include +class RefBase +{ + int mRefs; + public: + RefBase():mRefs(0) { printf("RefBase::RefBase()\n"); } + virtual ~RefBase() { printf("RefBase::~RefBase()\n"); } + void incStrong() { + printf("RefBase::incStrong() : mRefs=%d\n", ++mRefs); + } + void decStrong() + { + --mRefs; + printf("RefBase::decStrong() : mRefs=%d\n", mRefs); + if( mRefs == 0 ) + delete this; + } +}; +class AAA : public virtual RefBase +{ + public: + AAA(){ printf("AAA::AAA()\n"); } + ~AAA() { printf("AAA::~AAA()\n"); } + void foo() { printf("AAA::foo()\n"); } +}; + +template < typename T > +class sp +{ + T *mPtr; + public: + sp( T *ptr):mPtr(ptr) { + printf("sp::sp(T)\n"); + mPtr->incStrong(); + } + sp( const sp &r ) : mPtr(r.mPtr) { + printf("sp::sp(sp)\n"); + mPtr->incStrong(); + } + + ~sp() { + printf("sp::~sp()\n"); + mPtr->decStrong(); + } + + T * operator->() + { + return mPtr; + } + T operator*() + { + return *mPtr; + } +}; + +int main() +{ + { + sp p1 = new AAA; + sp p2 = p1; + p1->foo(); + p2->foo(); + } + return 0; +} +#endif +#if 0 +#include + class AAA { int mRefs; diff --git a/03_day/sp/sp_1.cpp b/03_day/sp/sp_1.cpp new file mode 100644 index 0000000..ca1ff55 --- /dev/null +++ b/03_day/sp/sp_1.cpp @@ -0,0 +1,82 @@ +#if 1 +#include +#include +#include + +using namespace android; + +class AAA; +class BBB; + +class AAA : public virtual RefBase +{ + public: + wp pb; + AAA(){ printf("AAA::AAA()\n"); } + ~AAA() { printf("AAA::~AAA()\n"); } + void foo() { printf("AAA::foo()\n"); } +}; +class BBB : public virtual RefBase +{ + public: + wp pa; + BBB(){ printf("BBB::BBB()\n"); } + ~BBB() { printf("BBB::~BBB()\n"); } + void foo() { printf("BBB::foo()\n"); } +}; + +int main() +{ + { + sp p1 = new AAA; + sp p2 = new BBB; + p1->pb = p2; + p2->pa = p1; + } + return 0; +} +#endif + + + +#if 0 +#include +#include +#include + +using namespace android; + +class AAA; +class BBB; + +class AAA : public virtual RefBase +{ + public: + sp pb; + AAA(){ printf("AAA::AAA()\n"); } + ~AAA() { printf("AAA::~AAA()\n"); } + void foo() { printf("AAA::foo()\n"); } +}; +class BBB : public virtual RefBase +{ + public: + sp pa; + BBB(){ printf("BBB::BBB()\n"); } + ~BBB() { printf("BBB::~BBB()\n"); } + void foo() { printf("BBB::foo()\n"); } +}; + +int main() +{ + { + sp p1 = new AAA; + sp p2 = new BBB; + p1->pb = p2; + p2->pa = p1; + } + return 0; +} +#endif + + +