指向struct的指针,包含指向对象的指针,我想为其调用一个函数

时间:2012-11-02 22:54:07

标签: c++

  

可能重复:
  Request for member which is of non-class

所以我创建了一个ADT,它是一个由节点组成的单链表。这些节点每个都有一个指向其中称为数据的对象的指针。

Class Structure
{
    private:
        struct Node
        {
            Object *data;
            Node *next;
        };
        Node *head;
};

我试图在对象中调用一个函数,如下所示:

head = new Node;
head -> data = new Object();
head -> next = NULL;

cout << head -> data.print();

我在编译时遇到以下错误。

错误:请求'head-&gt; Structure :: Node :: data'中的成员'print',它是非类型'Object '*

编辑:感谢您的快速解答,精彩的社区。对我来说极其愚蠢的错误,我觉得自己像个傻瓜:P

3 个答案:

答案 0 :(得分:1)

data是一个指针,也许你需要

cout << head -> data -> print();

?或者,如果函数print执行打印本身,可能只是

head -> data -> print();

答案 1 :(得分:1)

对于指针类型,您应该使用->代替.来访问成员或首先使用*取消引用指针,然后使用.,因此您应该cout << head->data->print() {{1}} 1}}

答案 2 :(得分:0)

您需要cout << head->data->print()而不是cout << head->data.print()您不能使用点运算符从指针调用方法。