Galera estou aprendente pelo o livro "treinamento em linguagem c++" e não estou entendendo esse código no livro estou copiando do mesmo jeito mas esta tando esses erros, alguém pode me explicar o que esta errado ?
estou usando o Visual Studio.
deste de já agradeço.
class Data
{
public:
int dia, mes, ano;
private:
int Bissexto( ) //fuçao inline
{
return (ano % 4 == 0 && ano % 100 || ano % 400 == 0);
}
void InitData(int d, int m, int a) //inicializaçao de dados
{
void PrintData();
void PrintSigno();
void PrintBissexto();
};
void Data::InitData(int d, int m, int a) //o nome qualificado não e permitido a em declaração de membro << esta tanto esse erro nesse lugares
{
int dmes[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
ano = a > 0 ? a : 1;//valida ano
dmes[2] = dmes[2] + Bissexto();
mes = m >= 1 && m <= 12 ? m : 1; //valida mes
dia = d >= 1 && d <= dmes[mes] ? d : 1;//valida dia
}
void Data::PrintData() //o nome qualificado não e permitido a em declaração de membro
{
char nome[13][10] =
{ "zero","janeiro","fevereiro","março","abriu",
"maio","junho","julho","agosto","setembro",
"outubro","novembro","dezembro"
};
cout << dia << "de" << nome[mes] << "de" << ano << endl;
}
void Data::PrintSigno() //o nome qualificado não e permitido a em declaração de membro
{
char nsigno[14][12] =
{
"zero","capricornio","aquario","peixes","aries",
"touro","gemeos","leao","virgem",
"libra","escorpiao","sagitario","capricornio"
};
int sig[] = { 0,20,19,20,20,20,20,21,22,22,22,21,21 }; if (dia < sig[mes])
cout << "Signo: " << nsigno[mes] << endl;
else
cout << "signo: " << nsigno[mes + 1] << endl;
}
Data::PrintBissexto() //o nome qualificado não e permitido a em declaração de membro
{
if (Bissexto())
cout << "ano e bissexto." << endl;
else
cout << "ano nao e bissexto." << endl;
}
};
int main()
{
Data x, y, z;
x.InitData(14, 6, 1992); // aqui esta falando que a função esta inacessível << em todos elas
y.InitData(12, 1, 1976);
z.InitData(30, 7, 1978);
x.PrintData();
x.PrintData();
x.PrintBissexto();
y.PrintData();
y.PrintData();
y.PrintBissexto();
z.PrintData();
z.PrintData();
z.PrintBissexto();
}