C++: les Conflits avec une précédente déclaration?
Je suis en train de travailler sur cette mission, et je reçois un message d'erreur pour un apparemment déclarée précédemment méthode. Ici est la .h fichier:
#ifndef DLLIST_H
#define DLLIST_H
#include <iostream>
#include <fstream>
#include <cstddef>
#include "DListNode.h"
typedef int ItemType;
class DLList
{
private:
friend std::ostream & operator<< (std::ostream & out, DLList & other);
int size;
int * head;
int * tail;
void _copy(const DLList * toCopy);
void _dealloc();
public:
DLList();
DLList(const DLList & toCopy);
~DLList();
DLList & operator=(const DLList & toCopy);
int size();
void append(ItemType item);
void insert(int index, ItemType item);
ItemType pop(int index);
ItemType pop();
const DListNode & operator[] (int idx);
};
std::ostream & operator<< (std::ostream & out, const DLList & d);
#endif
L'erreur est déclenché à int size();
, en disant qu'il est en conflit avec une précédente déclaration. Je sais que cela serait normalement découler de m'y compris ce fichier d'en-tête à plusieurs reprises, mais je ne vois pas où ça se passe. Ces inclure des instructions pour tous les fichiers dans le projet:
#include "DLList.h" //DLList.cpp
=======================================
#include "DListNode.h" //DListNode.cpp
=======================================
#include <iostream> //DListNode.h
#include <fstream>
#include <cstddef>
=======================================
#include "DLList.h" //This is the main test file
#include "DListNode.h"
#include <iostream>
Je peux voir que DListNode.h est techniquement être inclus deux fois, mais nulle part DLList.h inclus plus d'une fois. Suis-je en faisant une erreur stupide et de ne pas le voir? (Probablement le cas). Merci pour toute aide!
OriginalL'auteur Martin | 2012-12-04
Vous devez vous connecter pour publier un commentaire.
C'est parce que vous avez un variable membre également nommé taille. Vous pouvez résoudre ce problème en renommant l'un d'eux.
vous êtes les bienvenus!
OriginalL'auteur Karthik T
Il y a une sorte d'objets en c++, qui est appelable. Il serait source de confusion lorsque vous appelez DLList::size(), si la variable dans la définition de votre classe est appelable.
Et que doit être la raison pour laquelle compilateur c++ interdit la déclaration de fonction et de variable avec le même nom.
OriginalL'auteur 庄子文