如何通过main()函数传递私有数据的地址?

时间:2015-05-13 14:01:06

标签: c++ oop

以相反的顺序打印链接列表的元素

#include "stdafx.h"
#include<iostream>
#include<conio.h>
using namespace::std;
struct node
{
    int data;
    node* next;
};
class linklist
{
    node* head;
public:
    linklist()
    {
        head = NULL;
    }
    void create_list(int d);
    void reverse_print_list(node*);

}

void reverse_print_list(node* p)
{
    if (p == NULL)
        return;
    reverse_print_list(p->next);
    cout << endl << p->data << " ";
}

int main()
{
    linklist l1;
    l1.create_list(10);
    l1.create_list(20);
    l1.create_list(30);
    l1.create_list(40);
    l1.create_list(50);
    l1.print_list(& head);  // Not allowed , gives compilation error 
    _getch();
    return 0;
}

在这里,我想传递&#34; head&#34; 的地址。但它不能在课外访问,因为它是私人数据
如何解决这个问题呢 ???

1 个答案:

答案 0 :(得分:0)

添加一个使用head调用递归函数的公共重载:

void reverse_print_list() {reverse_print_list(head);}

现在可以将递归函数设为私有。