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()的构造形式。

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

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?