-2
余分な{または}があるときからこのエラーメッセージがわかります。しかし、私の編集者は角括弧を強調表示し、それが一致することを示しています。 #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
}
私はテンプレートを追加して、オーバーロード演算子< <の実装を追加する前にそれは罰金実行していました。何か不足していますか?
ファイルを2回インクルードするとどうなりますか?あるいは、別の方法で質問をするには、 '#'の前に問題を置くとどうなりますか? –
'#endif'の直後にそのブラケットは何をしていますか? – AnT
私はこれを試してみましたが、Tがこのスコープで宣言されていない、テンプレート引数1が無効で、assulmentのlulz :: Contacto
acarana