Je travaille sur ce programme, mais chaque fois que je tente de construire, je reçois ces messages d'erreur:Pas sûr du placement de Typedef et classe
|41|undefined reference to `Gumball::Gumball()' obj\Debug\main.o||In function `main':| |24|undefined reference to `Gumball::Gumball()' |24|undefined reference to `Gumball::Gumball()' obj\Debug\main.o||In function `Z10eatgumballR5StackR7Gumball' |102|undefined reference to `Gumball::Gumball()' obj\Debug\Node.o||In function `Node': |4|undefined reference to `Gumball::Gumball()' |4|more undefined references to `Gumball::Gumball()' follow ||=== Build finished: 6 errors, 0 warnings ===|
Je ne suis pas sûr de ce que la cause de ces messages d'erreur sont depuis que j'ai la classe Gumball déclarée à l'intérieur de ma classe Node et
#include "Node.h"
dans ma classe Stack et "#include "Stack.h"
dans ma principale. Toute suggestion serait appréciée.
mon fichier Node.h ressemble à ceci:
#ifndef NODE_H
#define NODE_H
#include <iostream>
using namespace std;
class Gumball {
public:
Gumball();
string color;
int counter;
};
typedef Gumball Type;
// Interface file - Node class definition
class Node {
public:
Node();
Type x;
Node *n;
Type getinfo();
Node *getnext();
void setinfo(Type x);
void setnext (Node *n);
private:
Type info;
Node *next;
};
#endif // NODE_H
et mon fichier Stack.h ressemble à ceci:
constructeur
#ifndef STACK_H
#define STACK_H
#include "Node.h"
typedef Gumball Type;
// Interface file - Stack class definition
class Stack {
public:
Stack();
~Stack();
void push(Type);
Type pop();
bool isempty();
//Type size();
void print();
private:
Node *top;
};
#endif // STACK_H
Vous n'avez pas besoin de 'typedef' dans' Stack.h' car c'est dans 'Node.h', que vous incluez. –
N'utilisez pas 'using namespace' dans un fichier d'en-tête. –
sans utiliser l'espace de noms, il ne reconnaît pas la chaîne en tant que type – 123me