1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvidas em Structs

Discussão em 'Programação' iniciada por Spike_ash, 19 de Junho de 2012. (Respostas: 1; Visualizações: 543)

  1. Boas,

    estou a contruir um jogo em C++ simples (só escrito) e estou a ter problemas nas Structs. O jogo está planeado para ter mais do que um inimigo e eu já construí o modelo de batalha. Gostava de saber uma maneira de poder aplicar monstros diferentes à função da batalha.

    Aqui fica só um prog que fiz para assinalar as dúvidas que tenho (é só um exemplo):
    Código:
    #include <iostream>
    
    using namespace std;
    
    struct Date
    {
        int nDay;
        int nMonth;
        int nYear;
    };
    
    Date one = {12, 4, 1997};
    Date two = {18, 2, 2013};
    Date three = {22, 10, 1980};
    
    int change(Date x)
    {
        x.nDay -= 1;
        x.nMonth -= 1;
        x.nYear -= 1;
    }
    
    int print(Date x)
    {
        cout << "Date: " << x.nDay << "/" << x.nMonth << "/" << x.nYear;
    }
    
    int main()
    {
        change(Date one);
        change(Date two);
        change(Date three);
        print(Date one);
        print(Date two);
        print(Date three);
        cin.get();
        cin.get();
        return 0;
    }
    
    O programa diminui um dia, um mês e um ano ao que eu tinha estipulado e faz o print... O problema está no change(Date one)... qual é a melhor maneira de realizar?

    - Outra pergunta... como as 3 Dates foram declaradas fora das funções, qualquer mudança feita nas feitas não desaparece no fim da função, pois não?
     
  2. kukulcan

    kukulcan Power Member

    Não leves a mal, mas estão ai uns erros básicos - inclusive de sintaxe - pelo que te aconselho a praticares e leres um pouco mais, começando por algo mais simples.

    Problemas:
    - change(Date one) está errado. Muda para change(one). Mas também não é isso que queres, o que queres é change(&one).
    - Antes de tentares fazer o que disse em cima, tens de entender a diferença entre passagem de parametros por referência vs por valor. Também é por isso que não são reflectidas as mudanças. Não vale a pena estar aqui a explicar a coisa, aconselho-te mesmo a leres um pouco mais.
     

Partilhar esta Página