c++ 模板 指針類型偏特化

一步步來,先簡單點.目標:我們要實現一個模板類,例化后,可以通過get_val獲取到值,通過get_ptr獲取到指針.具體什么意思結合例子來看看吧.例子:
struct A{int data;A(int _data = https://www.huyubaike.com/biancheng/0):data(_data){}};template class heap_node{ public:typedef Tval_type;typedef T* ptr_type;typedef T& ref_type;ptr_type data;ref_type get_val() { return *data; }ptr_type get_ptr() { return data; }heap_node(ptr_type d) :data(d){printf("<T> (T*)\n");}heap_node(ref_type d) :data(&d){printf("<T> (T)\n");} }; int main() {A a(10);printf("ptr=%p\n",&a);heap_node<A> p0(a);printf("ptr=%p val=%d\n", p0.get_ptr(),p0.get_val().data);heap_node<A> p1(&a);printf("ptr=%p val=%d\n", p1.get_ptr(), p1.get_val().data); /*heap_node<A*> p2(a);printf("ptr=%p val=%d\n", p2.get_ptr(), p2.get_val().data);heap_node<A*> p3(&a);printf("ptr=%p val=%d\n", p3.get_ptr(), p3.get_val().data); */char ch = getchar();}(不要在類里直接保存值類型的數據,可以用指針或者引用都可以)發現heap_node<A

    推薦閱讀