Ir ao conteúdo

Posts recomendados

Postado

Gostaria de saber como faço para usar um vector como atributo de uma classe, mais especificamente um vector de enum.

 

como é feito a iniciação dentro do método construtor ?

como posso usa-lo fora da classe como um get por exemplo ?

 

Segue um exemplo do que eu desejo fazer:

 

#ifndef SERVICO_H
#define SERVICO_H

#include "cliente.h"
#include "data.h"
#include <vector>

using namespace std;

enum TipoDeServico{ADESTRAMENTO, BANHO, CASTRACAO, CONSULTA, DOACAO, HOSPEDAGEM, LOJINHA, TOSA};

class Servico{
private:
    Cliente *cliente;
    float valor;
    bool agendarVacina;
    Data *retorno;
    vector<TipoDeServico> *tiposDeServico;
public:
    Servico(Cliente *cliente, float valor, bool agendarVacina, Data *retorno,  vector <TipoDeServico> *tipoDeServico);
    Cliente *getCliente();
  	float getValor();  
  	bool isAgendarVacina();
    Data *getRetorno();
    vector <TipoDeServico>* getTipoDeServico();
};

#endif // SERVICO_H

 

Postado
private:
    Cliente *cliente;
    float valor;
    bool agendarVacina;
    Data *retorno;
    vector<TipoDeServico> *tiposDeServico;

 

Vector é um container. Provavelmente não vai ganhar nada com um ponteiro para um container e que, afinal, pode ser construído vazio...

 

Acho que bastaria um vetor de serviços com, digamos, os serviços, vinculando Pets, Clientes e Prestadores , Agenda e quem sabe um dashboard com a situação da agenda para admnistração.

 

Os construtores de vector estão bem documentados. Leu alguma documentação?

 

image.thumb.png.b93ca3c0e81cc160a9dbad0cb4d05482.png

Postado

@arfneto

33 minutos atrás, arfneto disse:

private:
    Cliente *cliente;
    float valor;
    bool agendarVacina;
    Data *retorno;
    vector<TipoDeServico> *tiposDeServico;

 

Vector é um container. Provavelmente não vai ganhar nada com um ponteiro para um container e que, afinal, pode ser construído vazio...

 

Acho que bastaria um vetor de serviços com, digamos, os serviços, vinculando Pets, Clientes e Prestadores , Agenda e quem sabe um dashboard com a situação da agenda para admnistração.

 

Os construtores de vector estão bem documentados. Leu alguma documentação?

 

image.thumb.png.b93ca3c0e81cc160a9dbad0cb4d05482.png

 

Acredito que eu não esteja iniciando da forma correta no construtor, pois esse atributo é visto como vazio quando acessado de outra classe 

Postado
1 hora atrás, Gabriel Barbosa Brandao disse:

Acredito que eu não esteja iniciando da forma correta no construtor, pois esse atributo é visto como vazio quando acessado de outra classe

 

Não vejo razão para usar um ponteiro para um container aí dentro. E se declarou como private é esperado que não possa acessar em outra classe. 

E um ponteiro é apenas um ponteiro. No construtor de serviço deve ser criado um vetor ao menos. E pode ser criado vazio como deve ter visto na lista de construtores....

 

Em C++ em se tratando de um container é normal se usar uma referência e não um ponteiro.

 

Tem que ter uma razão muito forte para usar um ponteiro e new/delete hoje em dia. Isto vem sendo desestimulado há uns 15 anos ao menos. Use referências &, r-value references &&, unique_ptr e shared_prt antes de pensar em usar new/delete. C++ não é C.

 

 

Postado
1 hora atrás, Gabriel Barbosa Brandao disse:

declarei da forma como eu achei que funcionaria, se tiver alguma sugestão para melhor uso do container como atributo da classe agradeço!!


Hoje já te dei duas sugestões. Use referências para o vetor. Esqueça o ponteiro e considere o resto do que eu já te expliquei ;) 

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!