1. 程式人生 > >類模板封裝(奇技淫巧)

類模板封裝(奇技淫巧)

//類模板封裝(奇技淫巧)
#include<iostream>
using namespace std;
class A
{
public:
	A(int id):_id(id){}
	~A() {}
	void print() {
		std::cout << "User[" << _id << "] login success..." << std::endl;
	}
private:
	A() {}
	int _id;
};

template<class T>
class B
{
	typedef void
(T::*CallBack)(); public: B(T& u,CallBack method):Object(&u),_method(method) {} ~B() {} void p() { //或許是因為模板類在編譯時才能確定型別 //所以函式指標必須要加上* (Object->*_method)();//這一步重點 } private: T* Object; CallBack _method; }; int main() { A a(666); B<A> b(a,&A::print); b.p(); A a1(
888); B<A> b1(a1,&A::print); b1.p(); cin.get(); return 0; }