Search code examples
c++classstructtoken

Expected initializer before '.' token c++


I'm getting this error at the dot, before "codigo", on const EstruturaApresentacao TUApresentacao::ESTRUTURA_VALIDA.codigo = "0020";

I'm stuck for a while at this problem. Am I missing something?

Thanks in advance!

entidades.h

#include <string>

typedef struct Estrutura_Apresentacao {
    string codigo;
    string data;
    string horario;
    string preco;
    string sala;
    string disponibilidade;
}EstruturaApresentacao;

teste.h

#include "entidades.h"
using namespace std;

class TUApresentacao {
 private:

    void monta();
    void desmonta();
    void testarCenarioSucesso();

    static const EstruturaApresentacao ESTRUTURA_VALIDA;

    Apresentacao *pApresentacao;

  public:

    void run();
};

testes.cpp

#include "testes.h"
#include <iostream>

const EstruturaApresentacao TUApresentacao::ESTRUTURA_VALIDA.codigo = "0020";
const EstruturaApresentacao TUApresentacao::ESTRUTURA_VALIDA.data = "18/04/19";
const EstruturaApresentacao TUApresentacao::ESTRUTURA_VALIDA.horario = "10:30";
const EstruturaApresentacao TUApresentacao::ESTRUTURA_VALIDA.preco = "212,15";
const EstruturaApresentacao TUApresentacao::ESTRUTURA_VALIDA.sala = "8";
const EstruturaApresentacao TUApresentacao::ESTRUTURA_VALIDA.disponibilidade = "102";

Solution

  • You can't initialize individual members like that. You could initialize the whole structure:

    const EstruturaApresentacao TUApresentacao::ESTRUTURA_VALIDA = {
      "0020",
      "18/04/19",
      "10:30",
      "212,15",
      "8",
      "102"
    };