友元类
class Node
{
public:
Node(int val = int())
{
_val = val;
_next = NULL;
_pre = NULL;
}
friend class List;//友元类,即List中可以访问Node的私有成员
private:
int _val;
Node* _next;
Node* _pre;
};
class List
{
public:
List();
List(const List& src);
~List();
List& operator=(const List& src);
void push_back(int _val);
void pop_back();
void push_front(int _val);
void pop_front();
int back();
int front();
bool is_empty();
void show();
private:
Node* _head;
Node* _tail;
};
友元函数
class Node
{
public:
Node(int val = int())
{
_val = val;
_next = NULL;
_pre = NULL;
}
friend void show(List& list);
friend class List;//友元类,即List中可以访问Node的私有成员
private:
int _val;
Node* _next;
Node* _pre;
};
class List
{
public:
List();
List(const List& src);
~List();
List& operator=(const List& src);
void push_back(int _val);
void pop_back();
void push_front(int _val);
void pop_front();
int back();
int front();
bool is_empty();
friend void show(List& list);
private:
Node* _head;
Node* _tail;
};
void show(List& list)
{
Node*tmp = list._head->next; // 外界不可以访问私有成员,用友元之后就可以了
while(tmp != NULL)
{
cout << tmp->_val << "->";
tmp = tmp->_next;
}
cout << endl;
}