Ir para conteúdo
Fórum Script Brasil

Hicker

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre Hicker

  • Data de Nascimento 28/09/1988

Contatos

  • Website URL
    http://
  • ICQ
    0

Perfil

  • Gender
    Male
  • Location
    Laje do Muriaé
  • Interests
    O que for do seu interesse.

Hicker's Achievements

0

Reputação

  1. Uhmm... realmente eu também não achei. Acho que não deve ser possível, já que o operador só aceita um parâmetro... Obrigado mesmo assim.
  2. Up... Alguém tem alguma dica? Ou será que não há maneira para se fazer isso? Thanks.
  3. Aloha moços, Estou desenvolvendo uma classe para operação com matrizes bidimensionais, a classe já está rodando e funcionando com métodos para soma, subtração e multiplicação. Minha dúvida é como faço para sobrecarregar o operador [] para acesso aos elementos da matriz. O que quero é acessar o elemento de uma matriz usando a notação m[0][0], supondo que m seja o objeto do tipo Matriz e também que eu queira acessar o elemento da linha 1, coluna 1. Minha classe matriz tem os seguintes atributos: int coluna; int linha; double **p; Portanto, se quero acessar o elemento da linha 1, coluna 1 de uma matriz m, eu apenas escrevo m.p[0][0], o que não é muito claro. Não sei como vou sobrecarregar o operador [] já que o mesmo recebe apenas 1 parâmetro e não dois. Consegui sobrecarregar o operador () para acesso, pois o mesmo recebe dois parâmetros, sendo que preciso usar a notação m(1,1) para acessar o elemento citado acima, o que, como podem ver, não é muito lógico. Então é isso... preciso sobrecarregar o operador [] como método membro da classe de forma que possa acessar os elementos chamando m[0][0] (sendo m um objeto do tipo matriz e os índices numéricos correspondentes a um elemento na matriz que neste caso é linha 1, coluna 1). Grato aos que ajudarem
  4. Hicker

    Dúvida sobre conversão

    É mesmo... quase no mesmo tempo. Agora que dei uma olhada na função atof com mais calma e realmente está na sua declaração um ponteiro como parâmetro... sempre achei que fosse um char. Mas valeu a ajuda.
  5. Hi moços Estou tendo problemas para implementar um código que receba argumentos (função main()) na hora de sua chamada. #include <unistd.h> #include <iostream> #include <stdlib.h> using namespace std; int main (int argc, char* argv[]) { int opt; while((opt = getopt ( argc, argv, "abc:dm:")) != -1) { switch(opt) { case 'a': cout << "Opção = " << static_cast<char>(opt) << endl; break; case 'b': cout << "Opção = " << static_cast<char>(opt) << endl; break; case 'c': cout << "Opção = " << static_cast<char>(opt) << " Argumento = " << optarg << endl; break; case 'd': cout << "Opção = " << static_cast<char>(opt) << endl; break; case 'm': cout << "Opção = " << static_cast<char>(opt) << " Argumento = " << optarg << endl; float soma; int n; float a; for(int i=0;i<strlen(optarg);i++) if (optarg[i]!=' '){a=atof( & argv[optind-1][i]); soma+=a; n++;}; // <- problema de conversão cout<<"media = "<<(soma/n)<<endl; //invalid conversion from `char' to `const char*' break; case '?': cout << "Opção Inválida= " << static_cast<char>(optopt) << endl; break; case ':': cout << "Falta de argumentos. " << endl; break; } } for(; optind < argc; optind++) cout << "Opção inválida argv[" << optind << "]=" << argv[optind] << endl; system("PAUSE"); return 0; } O problema surge quando passo o argumento -m (para cálculo da média): -m "1 2 3 4", já que não consigo fazer a conversão dos números que estão na string em C char para números floats. O compilador que estou usando é o g++ (Dev-Cpp 4.9.9.2). Espero idéias. Abraços. SOLVED: Sem querer resolvi o problema apenas colocando o operador & na frente de argv[optind-1]... parece que passando o endereço ele não acusa o erro. Quem souber me explicar o porquê disso, fico agradecido.
×
×
  • Criar Novo...