chaoren00001 2019-01-13 19:19 采纳率: 100%
浏览 304
已采纳

新手问,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条回答 默认 最新

  • 海涛一路向前 2019-01-13 20:12
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?