所以我创建了一个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
答案 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()
您不能使用点运算符从指针调用方法。