• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

nao sei como fazer!

12 mensagens neste tópico

tenho uma classe, que é a classe encomenda!


class encomenda{
    string nomecliente;
    auxiliar *ptr;
    int n;//
}


e tenho outra classe auxiliar


classe auxiliar{
        int preco;
       string codigo;
       int quantidade;
       }   



a minha duvida é, tenho um vector de encomendas! quero pesqueisar o nome do cliente, so o nome estiver num dos elementos do meu array encomendas, tenho acesso ao meu vector auxiliar..

como tenho acesso?

ptr->getpreco??

nao percebo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não tens nenhum método getpreco definido na classe auxiliar. Omitiste ou não existe?

Não percebi bem ao que queres ter acesso. ptr aponta para uma instância de auxiliar. Só por aí já tens acesso ao objecto. Se o que queres é ter acesso aos valores dos campos de ptr, então ou crias métodos que retornem o valor de cada um dos campos, ou tornas os campos públicos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:)sim a função auxiliar ja tem funçoes tipo getpreco, get quantidade, o meu problema e com o ponteiro, para ter acesso aos elementos  dos auxiliares faço ptr->getpreco?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exactamente. Mais precisamente ptr->getpreco(). Se ptr for um array de auxiliares, podes fazer ptr[0].getpreco(), ptr[1].getpreco(), etc.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

por sua vez a classe auxiliar e um array dinamico de objectos tipo auxiliares

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ptr é que pode ser um array. A classe auxiliar é simplesmente uma classe. ptr aponta para o 1º elemento de um array de auxiliar. É isso?

Mais importante, já percebeste o que querias?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que ela quer dizer que tem arrays de ponteiros para aquelas duas classes. E depois pretende usar os ponteiros que são membros da classe, certo suzy?

O que interessa reter aqui é:

para acederes a um membro ou método da classe usas tendo um objecto instancializado usas o operador de acesso '.'

Se estiveres a aceder ao objecto atraves de um ponteiro que aponte para ele então usas a seta em vez do ponteiro.

tipo

saco_de_batatas saco();
saco_de_batatas.get_minhocas();

saco_de_batatas *point = saco;
point->get_minhocas();

Espero nao me ter enganado na sintaxe.

Pela milésima vez... lê a regras!

http://www.portugal-a-programar.pt/guidelines/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:)ok:) qd tenho um duvida posto logo :-[

e ja agora, como somo variaveis num array dinamico:????? :eek:

tipo

[5][9][4] soma=19

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação às regras estava-me a referir ao uso do gueshi e de um título apropriado para o tópico em vez de "ajudem-me por favor".

Ora bem, neste caso como os elementos são todos do mesmo tamanho.

int a[3];
a[0]=5;
a[0]=9;
a[0]=4;

int aux=0;

for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){
     aux= aux+a[i];
}

Se não perceberes o uso do sizeof

google -> get array length c++

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

saco_de_batatas saco();
saco_de_batatas.get_minhocas();

saco_de_batatas *point = saco;
point->get_minhocas();

saco_de_batatas saco();
saco.get_minhocas();

saco_de_batatas *point = &saco;
point->get_minhocas();

Só podias fazer saco_de_batatas.get_minhocas(); caso get_minhocas() fosse um método estático. E faltava o & na atribuição do ponteiro.

E já agora revê isto:

int a[3];
a[0]=5;
a[0]=9;
a[0]=4;

que estás a escrever sempre no mesmo índice. E isso não é um array dinâmico. Essa fórmula só funciona em arrays estáticos e dentro da função onde foram definidos.

Para arrays dinâmicos, dá sempre jeito ficar com o tamanho do array que se alocou numa variável.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso foi do copy paste, esqeci-me de mudar o índice... sorry.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora