本节将实现一个名为SmartPointer的简化版本的shared_ptr模板类,相关C++代码如下。
本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载,但需要注明原作者"海洋饼干叔
叔";本文不允许以纸质及电子出版为目的进行抄摘或改编。
1.《Python编程基础及应用》,陈波,刘慧君,高等教育出版社。免费授课视频 Python编程基础及应用
2.《Python编程基础及应用实验教程》, 陈波,熊心志,张全和,刘慧君,赵恒军,高等教育出版社Python编程基础及应用实验教程
3. 《简明C及C++语言教程》,陈波,待出版书稿。免费授课视频
//Project - SmartPointer
#include <iostream>
using namespace std;
class Fish {
public:
string sName;
Fish(const string& name){
sName = name;
cout << "Fish Constructor called: " << sName << endl;
}
void sayHello(){
cout << "Aloha: " << sName << endl;
}
~Fish(){
cout << "Fish Destructor called: " << sName << endl;
}
};
template <typename T>
class SmartPointer {
private:
T* ptr; //原始指针
int* refCount; //指向引用计数的指针
void releaseReference(){
//释放对对象的引用