1. 程式人生 > >1.1 c/c++智慧指標

1.1 c/c++智慧指標

c/c++智慧指標

(直接上程式碼)
template <typename T>
class sharePtr
{
public:
	sharePtr() {
		instance_ = new T();
	}
	~sharePtr() {
		delete instance_;
	}
	
    // 為了像指標一樣使用
	T* operator->() {
		return instance_;
	}

private:
	T* instance_;
};

class testSharePtr
{
public:
	testSharePtr() {
		cout << "testSharePtr conStructor" << endl;
	}
	~testSharePtr() {
		cout << "testSharePtr deStructor" << endl;
	}

	void print() {
		cout << "testSharePtr -> print()" << endl;
	}
};

void test_sharePtr(){
    sharePtr<testSharePtr> testPtr;
	testPtr->print();
}