chaoren00001
chaoren00001
采纳率100%
2019-01-13 19:19

新手问,C++类方法中不能创建别的结构的变量吗?

已采纳

初学c++,想综合练习一下结构和类。
我定义了
1:一个Formula类,主要用于保存某种公式;
2:一个Fml_LNode结构,包含Formula对象和Fml_LNode指针,用于将Formula对象存储为单链表形式;
3:一个Fml_LList类,包含上述链表的结点数、头指针和尾指针,以及成员函数add()。如代码所示。

class Formula {
private:
    gem src;
    gem pro;
public:
    Formula(gem sc, gem pr);
    ~Formula() {};
    void show();
};

struct Fml_LNode {
    Formula fml;
    Fml_LNode *next;
};

class Fml_LList {
private:
    int num_of_formulas;
    Fml_LNode *L;
    Fml_LNode *rear;
public:
    void add(Formula & fml);
};

add()方法的功能是接受一个Formula公式对象的引用,尾插法加入到链表中,代码为:

void Fml_LList::add(Formula & newfml) {
    num_of_formulas++;
    int a;
    rear = new Fml_LNode;
    rear->fml = newfml;
    rear->next = NULL;
    rear = rear->next;
}

遇到问题:
在新建链表结点那一行,编译器提示不能”尝试引用已删除的函数“。
图片说明
图片说明
我明明是用结构体变量,这和构造函数啥的又有什么关系呢?如果不能则么做,希望能提供一个思路谢谢大家

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • St_One_Lip Code of King 2年前

    你的fml Lnode里面有一个Formula对象,而你声明的Formula对象没有默认的构造函数。现在你只有一种Formula(gem sc, gem pr)的构造形式,没有Formula()的构造形式。

    点赞 评论 复制链接分享

相关推荐