我知道这个错误消息来自额外的{或}。但我的编辑器确实突出括号并显示它匹配。问题出现在#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;的实现之前,它运行正常。我错过了什么吗?
答案 0 :(得分:1)
只需将#endif
移至最后}
之后。