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

joaoqalves

Classes (structs) em C++

4 mensagens neste tópico

Boas pessoal, estou a tentar fazer um programa com struct e funções e está-me a dar erro na função setnome(argumento) help please

struct pessoa
{
public:
//int getidade();
//int setidade();
//char * getnome();
int setnome(char *novonome);
//int compra(float valor);
//int AnoNascimento();
//int numcompras();
//float totalcompras();
private:
int idade;
char nome[60];
float compras[50];
int numcompras;

}

pessoa::setnome(char *novonome)
{
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é sempre bom indicar o erro também, mas este vê-se logo que a assinatura da função na implementação não está igual como na definição. Falta o int, e se retorna int tem de existir um return.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:P

boas!! mas queres usar um ponteiro??

normalmente faz-se assim


Código

struct pessoa
{

private://podes nao colocar mas por default e privado
int idade;
char nome[60];// aqui deveria ser string nome
float compras[50];
int numcompras;

public:
       pessoa(int ida, string n, float comp,int num);//contrutor para inicialiares as variaveis

//int getidade();
//int setidade();
//char * getnome();
int setnome(char *novonome);
        void setnome(string nome);// assim
//int compra(float valor);
//int AnoNascimento();
//int numcompras();
//float totalcompras();

};

noutro ficheiro ,num ficheiro cpp


void pessoa::setnome(string nome){
             nome=n;// este n e do construtor 
         }

foi assim que aprendi e resulta.

;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Algumas "inconsistências", por assim dizer:

- a classe string da STL é uma classe muito útil, mas ele pode estar a utilizar char * por algum motivo. Por exemplo, não querer ou não poder utilizar string.

- nas structs, a acessibilidade por omissão é public;

- no método setnome, n não existe.

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