25 votes

Erreur C++ : définition de l'expression "implicitement déclarée".

J'écris ce programme de liste chaînée avec C++.

Lorsque je teste le programme, j'obtiens l'erreur suivante

linkedlist.cpp:5:24 : erreur : définition de 'constexpr LinkedList::LinkedList()' implicitement déclaré LinkedList::LinkedList(){

Voici le code

Le fichier 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();
};

fichier linkedlist.cpp :

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

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

Aidez-nous, s'il vous plaît.

34voto

binaryBaBa Points 688

Déclarez le constructeur sans paramètre dans le fichier d'en-tête :

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

Vous le définissez dans le fichier .cpp sans le déclarer réellement. Mais comme le compilateur fournit un tel constructeur par défaut (si aucun autre constructeur n'est déclaré), l'erreur indique clairement que vous essayez de définir un constructeur implicitement déclaré.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X