C++ C++;-如何从指向类的指针访问成员变量/函数

C++ C++;-如何从指向类的指针访问成员变量/函数,c++,pointers,C++,Pointers,我的老师为链表上的作业设置了一些基本代码 在标题中,定义了两个类: string\u节点和string 在字符串定义中,有一个私有变量mutable string_node*游标 现在在实际实现中,我尝试使用游标作为我创建并要修改的节点的引用。即: for (cursor_index = 0; cursor_index < many_nodes; cursor_index++){ cursor = new string_node(str[cursor_index]); f

我的老师为链表上的作业设置了一些基本代码

在标题中,定义了两个类:
string\u节点
string

在字符串定义中,有一个私有变量
mutable string_node*游标

现在在实际实现中,我尝试使用游标作为我创建并要修改的节点的引用。即:

for (cursor_index = 0; cursor_index < many_nodes; cursor_index++){
        cursor = new string_node(str[cursor_index]);
for(cursor\u index=0;cursor\u index
我不确定这是否正确,所以首先,有人能告诉我,如果这是错误的,我该怎么做吗

我认为这是错误的,因为我不能通过游标访问节点的数据和到其他节点的链接,因为它是指针(我希望能够只执行cursor.data,甚至可以设置get和set方法,尽管我不确定为什么需要,如果有人愿意向我解释的话)


因此,主要问题是能够在实现中设置节点的数据/链接。

回答您的初始问题:您需要“->”运算符。它相当于指向对象的指针的“.”运算符。

回答您的初始问题:您需要“->”运算符。它相当于“.”用于指向对象的指针的运算符。

有两种方法可以从指针中获取内容

首先是取消对它的引用:

string_node &mynode = *cursor;
mynode.whatever;
第二种(更好的方法)是使用解引用操作符(其作用相同,但更优雅):

继续讨论你的方法:也许我对一个相关问题的回答会帮助你:


您还可以从维基百科的伪代码中获得一些帮助:

有两种方法可以从指针中获取信息

首先是取消对它的引用:

string_node &mynode = *cursor;
mynode.whatever;
第二种(更好的方法)是使用解引用操作符(其作用相同,但更优雅):

继续讨论你的方法:也许我对一个相关问题的回答会帮助你:



你也可以从维基百科的伪代码中得到一些帮助:

你真的需要和你的老师谈谈链表。这篇文章有太多的东西要解释。如果这是一个选项,我就不在这里了:PDo你有一本数据结构的教科书吗?在我发布答案之前,我需要你在StackOverflow或Web上搜索“C链表”.是的,但我正在努力寻找答案。我能够用另一种方式设置链表(我用Java完成了所有这一切,而且更多,对C++非常缺乏经验)但我对这个框架代码的设置方式感到困惑。你真的需要和你的老师谈谈链表。这篇文章有太多的解释。如果这是一个选项,我不会在这里:PDo你有一本数据结构的教科书吗?在我发布答案之前,我需要你在StackOverflow或Web上搜索“C链表”。是的,但我正在努力寻找答案。我可以用另一种方式设置链表(我用Java做了所有这一切,而且更多,对C++非常缺乏经验),但我对这个框架代码的设置方式感到困惑。谢谢。我不得不使用*cursor->但除此之外,一切都很好。*cursor->whater;意思是:获取“whater”从游标开始,然后取消对结果的引用。你应该小心;听起来你好像对你要做的事情的结构搞糊涂了。好吧,游标->给了我一个错误,所以我放了asterix,但现在它让我把它改回来。好奇。如果没有更多的上下文,我不认为任何人能够进一步帮助你。你应该我会用更多的代码更新你的问题,比如你的结构看起来像什么,你实际上想做什么。谢谢你的提示Dave我肯定是个新手。谢谢。我不得不使用*cursor->但除此之外,一切都很好。*cursor->whatever;意思是:获取“whatever”从游标开始,然后取消对结果的引用。你应该小心;听起来你好像对你要做的事情的结构搞糊涂了。好吧,游标->给了我一个错误,所以我放了asterix,但现在它让我把它改回来。好奇。如果没有更多的上下文,我不认为任何人能够进一步帮助你。你应该我会用更多的代码更新你的问题,比如你的结构看起来像什么,你实际上想做什么。谢谢你的提示Dave我肯定是个新手。