类中的链表专用C++



我离c++很近,正在类内处理链表。我正在尝试将一个字符数组传递到链接列表中。不知怎么的,当我打印的时候,试着把它打印出来。结果相反。我想知道为什么我的代码会这样做,但我似乎不明白。

class foo{
public:
 foo(const char * s =""){
    head = Node::toList(s);
 }
 void print(ostream & in){
 for(ListNode *p = head; p!= nullptr;p=p->next)
    out << p->info;
 }
private:
struct Node{
 char info;
 Node *next;
 Node(char newInfo, Node *newNext):info(newNext),next(newNewxt){
 }
 static Node *toList(const char *s){
 Node *temp = nullptr;
 int x=0;
 for(;s[x] != '';x++){
     temp = new Node(s[x],temp); // Part where I do understand why I am getting reverse
 }
 return temp;
 }
Node *head;
}; 
ostream & operator << (ostream & out, foo src){
src.print(out);
return out;
};

任何提示或建议都很好。

如果您希望列表由使用其直接字符顺序的字符串初始化,则函数可以按照以下方式

static Node * toList( const char *s )
{
    Node *head = nullptr;
    for ( Node **temp = &head; *s; ++s )
    {
        *temp = new Node( *s, nullptr );
        temp = &( *temp )->next;
    }
    return head;
}        

考虑到问题中显示的代码片段不会编译。

除了语法错误之外,您不能将operator <<声明为用于在流中输出类的对象的类成员函数。

相关内容

  • 没有找到相关文章