【CPP】:模板类与友元函数实现链表

 hello.h

#include<iostream>
using namespace std;

template <typename Dtype>
class Node{
    private:
        template <typename DataType>
        friend void show(Node<DataType> *node);
        Node<Dtype> *next;
        Dtype data;
    
    public:
        Node(){
            cout << "Node init with no arg..." << endl;
            data = 0;
            next = NULL;
        }
        Node(Dtype item, Node<Dtype> *nextNode = NULL){
            cout << "Node init with arg..." << endl;
            data = item;
            next = nextNode;
        }
        ~Node(){
            cout << "delete Node..." << endl;
            next = NULL;
        }
};

hello.cc

#include<iostream>
using namespace std;

template <typename DataType>
void show(Node<DateType> *node){
    while(node != NULL){
        cout << node -> data << endl;
        node = node -> next;
    }
}

int main(){
    Node<int>* he = new Node<int>();
    Node<int>* ha = new Node<int>(3, he);
    Node<int>* view = new Node<int>(5, ha);
    show(view);
    delete view;
    delete he;
    delete ha;
    return 0;
}
发布了36 篇原创文章 · 获赞 6 · 访问量 6998

猜你喜欢

转载自blog.csdn.net/zhuikefeng/article/details/83511916