Ir ao conteúdo
  • Cadastre-se

C++ Erro Redefinicao do tipo Classe


Cortella

Posts recomendados

Olá Preciso fazer um simulador de loja em c++, sou iniciante e fiquei preso nos seguintes erros:

• Erro    C2011     'Pedidos': redefinição do tipo 'class'     


• Erro    C2027     uso de tipo indefinido 'Pedidos'

   

em main:

Cliente* c1 = new Cliente("Bruno", "105.158.525-13", "[email protected]", "abc", "1234", "Rua Sao Lazaro", 1404, 501, "31035580", "BH");

Publicacao* p1 = new Publicacao("Arte", 19.90, "joao", "Semanal", "21/05/2018");

Pedidos* pedido1 = new Pedidos(p1, c1);

Classe Cliente:

#ifndef CLIENTE_H
#define CLIENTE_H

#include "Endereco.h"
#include <string>
using std::string;
using std::to_string;

class Cliente {
private:

	string nome_;
	string login_;
	string senha_;
	Endereco *endereco_;
	string cpf_;
	string email_;

public:
	Cliente();
	//Cadastra novo cliente
	Cliente(string nome, string cpf, string email, string login, string senha, string rua, int numero, int ap, string cep, string cidade);
	//Retorna dados do cliente
	string dados();
};

#endif
  
  
  #include "Cliente.h"

Cliente::Cliente() {
	endereco_ = NULL;
}

Cliente :: Cliente(string nome, string cpf, string email, string login, string senha, string rua, int numero, int ap, string cep, string cidade) {
	this->nome_ = nome;
	this->login_ = login;
	this->senha_;
	this->cpf_ = cpf;
	this->email_ = email;
	endereco_ = new Endereco(rua,numero,ap,cep,cidade) ;
}

string Cliente :: dados() {
	
	return "NOME = " +
		nome_ +
		" | CPF  = " +
		cpf_ +
		" | Email = " +
		email_ +
		endereco_->DadosEndereco();
}

Classe Publicacoes:

 

#pragma once
#define PUBLICAO_H
#ifdef PUBLICAO_H

#include <string>

using std::string;

class Publicacao {
private:
	string titulo_;
	double preco_;
	string autor_;
	string periodicidade_;
	string data_;
	bool etiquetada_;
	int vendas_;
public:
	Publicacao();
	//Cria nova publicacao
	Publicacao(string titulo,double preco,string autor,string periodiciodade,string data);
	//etiqueta Publicacao
	void etiquetar();
	//Retorna numero de vendas
	int getVendas();
	//vender
	void vender();
};

#endif

  
  #include "Publicacao.h"

Publicacao::Publicacao() {
	preco_ = 0;
	vendas_ = 0;
	etiquetada_ = false;
}

Publicacao::Publicacao(string titulo, double preco, string autor, string periodicidade, string data) {
	titulo_ = titulo;
	preco_ = preco;
	autor_ = autor;
	periodicidade_ = periodicidade;
	data_ = data;
	etiquetada_ = false;
	vendas_ = 0;
}

void Publicacao::etiquetar() {
	etiquetada_ = true;
}

int Publicacao::getVendas() {
	return vendas_;
}

void Publicacao::vender() {
	vendas_++;
}

Classe Pedidos:




#include <string>
#include "Cliente.h"
#include "Publicacao.h"

using std::pair;

class Pedidos {
private:
	pair<int, string> pedido_;
public:
	//Cria novo pedido
	Pedidos(Publicacao *p, Cliente *c);
	//Retorna pedido
	pair<int, string> retornaPedido();
};


#include "Pedidos.h"

Pedidos::Pedidos(Publicacao *p,Cliente *c) {
	pair<int, string>aux(p->getVendas(), c->dados());
	pedido_ = aux;
	p->vender();
}

pair<int, string> Pedidos::retornaPedido() {
	return pedido_;
}


 

Link para o comentário
Compartilhar em outros sites

no cabeçalho (header) da classe Pedidos, faça o mesmo que fez na classe Cliente: use #ifndef #define para evitar a inclusão do mesmo cabeçalho mais de uma vez. Talvez resolva o erro de declaração dupla:

#ifndef PEDIDOS_H
#define PEDIDOS_H
#include <string>
#include "Cliente.h"
#include "Publicacao.h"

using std::pair;

class Pedidos {
private:
	pair<int, string> pedido_;
public:
	//Cria novo pedido
	Pedidos(Publicacao *p, Cliente *c);
	//Retorna pedido
	pair<int, string> retornaPedido();
};
#endif

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!