【问题标题】:Embedding object to a linked list c++将对象嵌入到链表c ++
【发布时间】:2014-08-31 09:20:38
【问题描述】:

我正在尝试将对象添加到链接列表。我的程序的想法是制作一个学生信息系统。在这个学生信息系统中,当有一个新的学生条目时,将创建一个新的类对象,该对象将作为链表中新节点的信息。换句话说,对象将是链表节点的信息字段。我试过这个程序,但出错了。

#include<iostream.h>
class result
{
    int age;
    char name[30];
    float marks;

public:
    void ret(int a, float m)
    {
        age = a;
        marks = m;

    }
};

struct node
{
    result info;
    struct node *next;
};


void main()
{
    struct node *h, *t;
    int g;
    float ma;
    cout<<"Enter age , name , marks\n";
    cin>>g;
    cin>>ma;
    result ob;
    h = NULL;
    t = new node;
    t->info = ob.ret(g,ma);
    t->next = NULL;
    h = t;
    cout<<t->info;
}

错误是:

1) 不允许的类型 2)非法结构操作

【问题讨论】:

  • 错误发生在哪里?

标签: c++ object linked-list


【解决方案1】:

ret 是返回 voidresult 的成员。我猜你打算创建一个带有两个参数的result 的构造函数。所以,这就是你要做的

class result
{
 int age;
 char name[30];
 float marks;

 public:
 result(){}
 result(int a, float m)
 {
  age = a;
  marks = m;

 }
};

并将t-&gt;info = ob.ret(g,ma); 更改为t-&gt;info = result(g, ma);

【讨论】:

  • @Padmini 请使用具有此更改的代码更新您的帖子。还使用此新代码提供完整的编译器错误输出。
  • 已经按照你说的修改了代码。但随后在 coutinfo 处也出现错误。错误是:非法结构操作。
  • 您需要为operator&lt;&lt;(result) 提供重载。
猜你喜欢
  • 1970-01-01
  • 2019-07-12
  • 2015-12-02
  • 2019-08-05
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
  • 2019-05-05
相关资源
最近更新 更多