shared_ptr.h 智能指针 像一个指针
This commit is contained in:
parent
9cbdc30509
commit
5afd86f6d4
@ -3,4 +3,4 @@ project(MSTL)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
|
||||
add_executable(MSTL main.cpp h/String.h h/List.h h/Singleton.h h/Faction.h)
|
||||
add_executable(MSTL main.cpp h/String.h h/List.h h/Singleton.h h/Faction.h h/shared_ptr.h)
|
||||
|
Binary file not shown.
@ -1,83 +1,7 @@
|
||||
# ninja log v5
|
||||
0 188 1664284334515694444 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
188 243 1664284334567693897 MSTL 5fce564c316cd3aa
|
||||
1 188 1664285135807563974 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
188 239 1664285135859563459 MSTL 5fce564c316cd3aa
|
||||
0 187 1664286405486806906 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
187 239 1664286405538806118 MSTL 5fce564c316cd3aa
|
||||
1 188 1664286744894028197 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
188 239 1664286744946027511 MSTL 5fce564c316cd3aa
|
||||
0 194 1664286766573742789 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
194 251 1664286766629742054 MSTL 5fce564c316cd3aa
|
||||
0 193 1664286868484424474 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
193 246 1664286868536423810 MSTL 5fce564c316cd3aa
|
||||
0 189 1664286919115782277 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
189 242 1664286919167781622 MSTL 5fce564c316cd3aa
|
||||
0 186 1664287171176682714 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
187 238 1664287171228682089 MSTL 5fce564c316cd3aa
|
||||
1 202 1664287184384523940 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
202 256 1664287184436523315 MSTL 5fce564c316cd3aa
|
||||
1 185 1664287209800219252 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
186 240 1664287209852218630 MSTL 5fce564c316cd3aa
|
||||
1 199 1664329383842216634 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
199 266 1664329383906216308 MSTL 5fce564c316cd3aa
|
||||
1 188 1664329414818043299 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
188 242 1664329414874042961 MSTL 5fce564c316cd3aa
|
||||
0 185 1664329437401900049 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
185 238 1664329437453899706 MSTL 5fce564c316cd3aa
|
||||
0 192 1664329501089439367 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
192 245 1664329501141438964 MSTL 5fce564c316cd3aa
|
||||
0 192 1664329527377230990 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
192 250 1664329527433230537 MSTL 5fce564c316cd3aa
|
||||
1 184 1664329547385067080 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
184 240 1664329547437066648 MSTL 5fce564c316cd3aa
|
||||
0 195 1664329562044944504 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
195 248 1664329562096944066 MSTL 5fce564c316cd3aa
|
||||
0 197 1664329595928654474 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
197 254 1664329595984653987 MSTL 5fce564c316cd3aa
|
||||
0 189 1664329615980479137 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
189 241 1664329616032478679 MSTL 5fce564c316cd3aa
|
||||
1 255 1664362496682112840 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
255 317 1664362496746112216 MSTL 5fce564c316cd3aa
|
||||
0 196 1664363080886255298 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
196 249 1664363080938254639 MSTL 5fce564c316cd3aa
|
||||
1 207 1664363210744642220 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
207 260 1664363210796641586 MSTL 5fce564c316cd3aa
|
||||
1 203 1664363257776071859 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
203 261 1664363257832071184 MSTL 5fce564c316cd3aa
|
||||
1 194 1664363286447727306 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
194 246 1664363286499726683 MSTL 5fce564c316cd3aa
|
||||
1 194 1664363358970865459 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
195 254 1664363359030864752 MSTL 5fce564c316cd3aa
|
||||
1 192 1664363365618787106 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
193 248 1664363365674786446 MSTL 5fce564c316cd3aa
|
||||
0 202 1664363382634587018 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
202 253 1664363382686586408 MSTL 5fce564c316cd3aa
|
||||
0 188 1664363478485471484 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
188 239 1664363478537470884 MSTL 5fce564c316cd3aa
|
||||
0 189 1664363513793065064 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
189 240 1664363513841064513 MSTL 5fce564c316cd3aa
|
||||
1 195 1664363564708482769 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
196 245 1664363564756482222 MSTL 5fce564c316cd3aa
|
||||
1 185 1664363576644346871 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
185 235 1664363576692346325 MSTL 5fce564c316cd3aa
|
||||
1 214 1664363882324928799 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
214 275 1664363882384928137 MSTL 5fce564c316cd3aa
|
||||
0 206 1664363895636782145 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
206 258 1664363895688781573 MSTL 5fce564c316cd3aa
|
||||
0 196 1664363902264709182 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
196 247 1664363902312708654 MSTL 5fce564c316cd3aa
|
||||
0 196 1664364097282576557 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
196 251 1664364097338575948 MSTL 5fce564c316cd3aa
|
||||
1 200 1664364169229795598 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
200 251 1664364169281795034 MSTL 5fce564c316cd3aa
|
||||
1 194 1664364181837659012 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
194 247 1664364181889658448 MSTL 5fce564c316cd3aa
|
||||
0 198 1664364741940511390 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
198 250 1664364741988511222 MSTL 5fce564c316cd3aa
|
||||
0 198 1664364752388473992 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
198 247 1664364752436473817 MSTL 5fce564c316cd3aa
|
||||
1 194 1664367851489745858 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
195 248 1664367851541745359 MSTL 5fce564c316cd3aa
|
||||
0 197 1664367911765168078 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
197 247 1664367911813167618 MSTL 5fce564c316cd3aa
|
||||
1 201 1664369005344443406 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
201 254 1664369005396441968 MSTL 5fce564c316cd3aa
|
||||
0 210 1664369061766923384 CMakeFiles/MSTL.dir/main.cpp.o 134556d569115d52
|
||||
210 264 1664369061818922019 MSTL 5fce564c316cd3aa
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,3 +1,3 @@
|
||||
Start testing: Sep 28 20:25 CST
|
||||
Start testing: Sep 28 20:44 CST
|
||||
----------------------------------------------------------
|
||||
End testing: Sep 28 20:25 CST
|
||||
End testing: Sep 28 20:44 CST
|
||||
|
4
h/List.h
4
h/List.h
@ -96,4 +96,8 @@ public:
|
||||
current = current->next;
|
||||
return i;
|
||||
}
|
||||
|
||||
// LNode<T> operator->(){
|
||||
// return &(operator*());
|
||||
// }
|
||||
};
|
||||
|
26
h/shared_ptr.h
Normal file
26
h/shared_ptr.h
Normal file
@ -0,0 +1,26 @@
|
||||
//
|
||||
// Created by dongl on 22-9-28.
|
||||
//
|
||||
|
||||
#ifndef MSTL_SHARED_PTR_H
|
||||
#define MSTL_SHARED_PTR_H
|
||||
|
||||
#endif //MSTL_SHARED_PTR_H
|
||||
|
||||
/// 智能指针 像一个指针
|
||||
template<class T>
|
||||
class shared_ptr{
|
||||
public:
|
||||
T& operator*() const {
|
||||
return *px;
|
||||
}
|
||||
|
||||
T* operator->() const {
|
||||
return px;
|
||||
}
|
||||
|
||||
shared_ptr(T* p) : px(p) {}
|
||||
private:
|
||||
T* px;
|
||||
long* pn;
|
||||
};
|
5
main.cpp
5
main.cpp
@ -2,6 +2,7 @@
|
||||
#include "h/List.h"
|
||||
#include "h/String.h"
|
||||
#include "h/Faction.h"
|
||||
#include "h/shared_ptr.h"
|
||||
|
||||
int main() {
|
||||
List<double> list = *new List<double>;
|
||||
@ -13,5 +14,9 @@ int main() {
|
||||
std::cout << ++list << std::endl;
|
||||
std::cout << ++list << std::endl;
|
||||
std::cout << list << std::endl;
|
||||
|
||||
shared_ptr<String> ptr(new String("ptr"));
|
||||
std::cout << ptr->get_c_str() << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user