holderptr.cct

来自「TGFF省城程序」· CCT 代码 · 共 76 行

CCT
76
字号
// Copyright 2000 by Robert Dick.// All rights reserved.#include "HolderPtr.h"/*###########################################################################*/template <typename T>HolderPtr<T>::HolderPtr(T * p) :	data_(p){}/*===========================================================================*/template <typename T>HolderPtr<T>::HolderPtr(const self & a) :	Comps<self>(),	Clones<self>(),	Swaps<self>(),	data_(a.data_ ? rstd::clone(*a.data_) : 0){}/*===========================================================================*/template <typename T> template <typename T2>HolderPtr<T>::HolderPtr(const HolderPtr<T2> & a):	data_(rstd::clone(a.data_)){}/*===========================================================================*/template <typename T>HolderPtr<T> &HolderPtr<T>::operator=(const self & a) {	T * new_data = a.data_ ? rstd::clone(*a.data_) : 0;	delete data_;	data_ = new_data;	return *this;}/*===========================================================================*/template <typename T> template <class T2>HolderPtr<T> &HolderPtr<T>::operator=(const HolderPtr<T2> & a) {	T * new_data = clone(a.data_);	delete data_;	data_ = new_data;	return *this;}/*===========================================================================*/template <typename T>HolderPtr<T>::~HolderPtr() {	delete data_;}/*===========================================================================*/template <typename T>comp_typeHolderPtr<T>::comp(const self & a) const {	return data_ < a.data_ ? LESS :		data_ > a.data_ ? GREATER :		EQ;}/*===========================================================================*/template <typename T>T * HolderPtr<T>::release() {	T * tmp = data_;	data_ = 0;	return tmp;}/*===========================================================================*/template <typename T>void HolderPtr<T>::reset(T * p) {	delete data_;	data_ = p;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?