在'}'之前的预期声明代币

时间:2017-06-04 01:37:48

标签: c++

我知道这个错误消息来自额外的{或}。但我的编辑器确实突出括号并显示它匹配。问题出现在#endif。

之后的最后一个括号
 #ifndef PROYECTO_H
 #define PROYECTO_H


 #include<stdio.h>
 #include<stdlib.h>
 #include <fstream>
 #include <iostream>
 #include <string>
 #include <cassert>
 #include <cstddef>

using namespace std;
namespace lulz{

template<class T>
struct Contacto {
string Cname;
string Apellidos;
string NumTel;
string email;
T sexo;
Contacto *Proximo;
};



template<class T>
class Lista {
public:
Lista();
~Lista();
bool ContactoVacio();  
void InsertContact(Contacto<T> Temp);
void InsertPosition(Contacto<T> Temp, Contacto<T>* Posicion);
void BuscarContact(string Name, string Lastname);
Contacto<T>* BuscarPosicion(int pos);
void Display(ofstream& salida, Lista<T> Cabezalista);
void Deletes();
friend ofstream& operator << (ofstream&salida, const Lista<T>& Cabezalista){
Contacto<T>* ContactList;
int Pos=0;
for(ContactList = Cabezalista.Cabeza; (ContactList != NULL) && (ContactList-
>Proximo != NULL); ContactList = ContactList->Proximo)
 {
cout << ' ' << Pos+1 << ". " << ContactList->Cname << ' ' << ContactList-
>Apellidos << ' ';
cout << ContactList->NumTel << ' ' << ContactList->email << ' ' << 
ContactList->sexo << ' ' << endl;
   Pos++; 
}
cout << "Cantidad de nodos" << ' ' << Cabezalista.numNodos << endl;
return salida;
}

private:
Contacto<T>* Cabeza;
int numNodos;
};



template<class T>
ifstream& operator >>(ifstream& entrada, Contacto<T>& Temp);

template<class T>
bool Validacion(Contacto<T> Temp);

void Opening(ifstream& entrada);
void Closing(ifstream& entrada);
void Menu();

#endif // PROYECTO_H  
}

在添加模板并添加重载运算符&lt;&lt;的实现之前,它运行正常。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

只需将#endif移至最后}之后。