当前位置: 首页 > 知识库问答 >
问题:

C错误:隐式声明的定义

卓星波
2023-03-14

我正在用C写这个链表程序

我测试程序时发现了错误

linkedlist。cpp:5:24:错误:隐式声明的“constexpr LinkedList::LinkedList()”LinkedList::LinkedList()的定义{

这是密码

Linkedlist. h文件:

#include "node.h"
using namespace std;

class LinkedList {
  Node * head = nullptr;
  int length = 0;
public:
  void add( int );
  bool remove( int );
  int find( int );
  int count( int );
  int at( int );
  int len();
};

linkedlist。cpp文件:

#include "linkedlist.h"
#include <iostream>
using namespace std;

LinkedList::LinkedList(){
  length = 0;
  head = NULL;
}
/*and all the methods below*/

请帮忙。

共有3个答案

裴学
2023-03-14

要在类之外定义构造函数,您需要首先在公共说明符中声明它,然后在类之外定义它。

#include "node.h"
using namespace std;

class LinkedList {
  Node * head = nullptr;
  int length = 0;
public:
  LinkedList();
  void add( int );
  bool remove( int );
  int find( int );
  int count( int );
  int at( int );
  int len();
};


LinkedList::LinkedList(){
  length = 0;
  head = NULL;
}
慕容成文
2023-03-14

您应该在类内部声明构造函数,以便在类外部定义构造函数。否则,您应该在类本身内部定义它。您的类应该看起来像这样。

            #include "node.h"
            using namespace std;
            class LinkedList {
              Node * head = nullptr;
              int length = 0;
            public:
              LinkedList();
              void add( int );
              bool remove( int );
              int find( int );
              int count( int );
              int at( int );
              int len();
            };
冯通
2023-03-14

在头文件中声明无参数构造函数:

class LinkedList {
{
....
public:
    LinkedList();
    ....
}

你是在给它下定义。没有实际声明的cpp文件。但是,由于编译器在默认情况下提供了这样一个构造函数(如果没有声明其他构造函数),因此错误明确表示您正在尝试定义隐式声明的构造函数。

 类似资料:
  • 问题内容: 我正在尝试在内核3.13上编译内核模块,但出现此错误: 我用谷歌搜索,没有找到任何回应。这是代码中引用此错误的部分: 我可以得到帮助吗?我真的不知道怎么了 可能是需要补丁的内核3.13。我在内核3.10上读到了内核需要修补的地方。谁能告诉我在哪里可以获得3.13内核补丁来最终解决此问题。谢谢 问题答案: 该错误是因为您没有明确包含声明该函数的标头,并且编译器暗中为您“包含”,这会引发警

  • 问题内容: 我了解“隐式声明”通常意味着必须在调用函数之前将其置于程序的顶部,否则我需要声明原型。 但是,应该在文件中(该文件已包含在内)。 有没有什么办法解决这一问题? 问题答案: 没错,如果您包含适当的标头,则不应收到隐式声明警告。 然而,该功能已被 删除 ,从C11的标准。这意味着in中不再有原型。 曾经 在。 删除的原因是众所周知的:它不能防止缓冲区溢出。因此,您永远不应使用,而应改用尾随

  • 本文向大家介绍VBA 隐式和显式声明,包括了VBA 隐式和显式声明的使用技巧和注意事项,需要的朋友参考一下 示例 如果代码模块不包含Option Explicit在模块顶部,则编译器将在使用它们时自动(即“隐式”)为您创建变量。它们将默认为变量类型Variant。 在上面的代码,如果Option Explicit指定,代码将中断,因为它缺少必要Dim的陈述someVariable和someOthe

  • 问题内容: 我一直在看一些代码,很难在php类中计算变量声明。具体来说,似乎我正在查看的代码在使用它们之前没有声明类变量。现在这是可以预期的,但是我找不到任何表明可能的信息。所以您会期望这样: 上班?并在类实例上创建这些变量以供以后使用吗? 问题答案: 这与正常变量声明的工作原理相同: PHP类与其他语言不太一样,在其他语言中,需要将成员变量指定为类声明的一部分。PHP类成员可以随时创建。 话虽如

  • gcc是否有一个选项来禁用未显式定义为volatile的全局变量的读/写优化? 我的团队正在耗尽我们的嵌入式C项目的程序内存,该项目使用gcc构建。当我启用优化以减少代码大小时,代码不再像预期的那样工作,因为我们没有在我们应该使用的地方使用volatile关键字。也就是说,我能够通过声明在ISRs Volatile中访问的几个变量来解决呈现的问题。然而,我并不确定这些是我需要声明volatile的

  • 我正处于学习RichFaces和JSF2.x的阵痛中。我在这里使用了一个教程,Eclipse标记了faces-config声明 null