fabmelboy Posted December 7, 2007 at 03:01 PM Report Share #152884 Posted December 7, 2007 at 03:01 PM #include<iostream> using namespace std; class gato{ private: char*nome; //char raca[40]; public: float peso; int idade; void setnome(char*n){nome=n;} //void setraca(char c){raca=c;} char*getnome() { return nome;} //getraca() { return raca;} void mostra(); } g1,g2; main() { //strcpy (g1.nome,"oscar"); g1.setnome("tareco"); /* g1.raca,"refeiro"; g2.nome,"Tareco"; g2.raca,"persa"; cout<<"Insira o peso do animal oscar\n"; cin>>g1.peso; cout<<"insira a idade do animal oscar\n"; cin>>g1.idade; cout<<"Insira o peso do animal tareco\n"; cin>>g2.peso; cout<<"insira a idade do animal tareco\n"; cin>>g2.idade;*/ g1.mostra(); } void gato::mostra(){ cout<<"O nome do cao é "<<g1.nome; //<<" a raca "<<g1.raca<<" o peso "<<g1.peso<<" a idade: "<<g1.idade<<"\n"; //cout<<"O nome do cao é "<<g2.nome<<" a raca "<<g2.raca<<" o peso "<<g2.peso<<" a idade: "<<g2.idade<<"\n"; } a profe deu este enunciado: cria um novo programa em c++ criar classe com os os seguintes campos privados: nome raça publicos: peso,idade cria dois objectos da classe gato g1,g2 dentro da classe gato cria duas funçoes que permitam aceder ao campo nome fora da classe uma do tipo set e outra do tipo get dentro de uma classe gato dentro da classe gato cria duas funçoes que permitam aceder ao campo raça fora da classe uma do tipo set e outra do tipo get preencha os seguintes campos g1 nome oscar raça rafeiro g2 nome tareco raça persa o programa deve pedir ao user para pedir o peso e a idade de cada um dos animais criar uma funçao membro fora da classe gato com o nome mostra . esta funçao deve imprimir todos os campos da classe gato utiliza a funçao mostra para imprimir os dados do objecto g1 e g2 ___________________________________________________________________ nos fizemos o que soubemos a profe quando chegou pos tudo a comentario e pouco mais ajudou.. podiam ajudar? abraço Fábio Rosa Link to comment Share on other sites More sharing options...
TheDark Posted December 7, 2007 at 03:20 PM Report Share #152889 Posted December 7, 2007 at 03:20 PM Deves ter faltado a algumas aulas importantes. Ou então estavas distraído. char raca[40]; -> compara com a maneira como declaraste o nome. void setraca(char c){raca=c;} -> compara o tipo do parâmetro com o do setnome. Falta ali qualquer coisa no cabeçalho do método getraca... compara com o getnome e descobre o que é 😄 strcpy (g1.nome,"oscar"); -> não podes aceder a campos privados de uma classe. Dica: tens métodos setnome e e setraca, utiliza-os! O mesmo se aplica ao seguinte: g1.raca,"refeiro"; g2.nome,"Tareco"; g2.raca,"persa"; cin>>g1.peso; cin>>g1.idade; cin>>g2.peso; cin>>g2.idade; e também aos comentários no método mostra. Desaparecido. Link to comment Share on other sites More sharing options...
Kriptosgeek Posted December 7, 2007 at 08:59 PM Report Share #153001 Posted December 7, 2007 at 08:59 PM Ninguem gosta de trabalhar para os outros mas é Natal... #include <iostream.h> #include <stdlib.h> class gato { private: char nome[40]; char raca[40]; public: float peso; int idade; //Funções para atribuir void setnome(char *novo_nome) { strcpy(nome,novo_nome); } void setraca(char *nova_raca) { strcpy(raca,nova_raca); } //Funções para ler char *getnome() { return nome; } char *getraca() { return raca; } }; void mostra (gato o1, gato o2) { //Output do objecto o1 cout << "O animal " << o1.getnome() << " da raca " << o1.getraca() << '\n'; cout << "pesa " << o1.peso << " kg\n"; cout << "tem " << o1.idade << " anos\n\n"; //Output do objecto o2 cout << "O animal " << o2.getnome() << " da raca " << o2.getraca() << '\n'; cout << "pesa " << o2.peso << " kg\n"; cout << "tem " << o2.idade << " anos\n\n"; } void main() { //criação dos objectos g1 e g2 apartir da classe gato gato g1,g2; //objecto g1, nome="oscar" e raca="rafeiro" g1.setnome("oscar"); g1.setraca("rafeiro"); //objecto g2, nome="tareco" e raca="persa" g2.setnome("tareco"); g2.setraca("persa"); //Pedido de input da idade e do peso //objecto g1 //peso cout << "Insira o peso do animal " << g1.getnome() << ": "; cin >> g1.peso; //idade cout << "Insira a idade do animal " << g1.getnome() << ": "; cin >> g1.idade; //objecto g2 //peso cout << "Insira o peso do animal " << g2.getnome() << ": "; cin >> g2.peso; //idade cout << "Insira a idade do animal " << g2.getnome() << ": "; cin >> g2.idade; //Vamos chamar a função mostra para onde iremos enviar os objecto g1 e g2 mostra(g1,g2); //um comando de sistema para o programa não sair rapidamente depois do output system("pause"); } So o fiz porque não tenho nada mesmo pra fazer 🙂 Melhor browser game do Mundo!---> Travian Regista-te! Link to comment Share on other sites More sharing options...
TheDark Posted December 8, 2007 at 01:18 AM Report Share #153036 Posted December 8, 2007 at 01:18 AM Mas não devias ter feito 😛 Desaparecido. Link to comment Share on other sites More sharing options...
Kriptosgeek Posted December 10, 2007 at 07:44 PM Report Share #153449 Posted December 10, 2007 at 07:44 PM Acho que tens razão.... Nem agradeceram! 🙂 Melhor browser game do Mundo!---> Travian Regista-te! Link to comment Share on other sites More sharing options...
ankmartins Posted December 11, 2007 at 08:19 PM Report Share #153736 Posted December 11, 2007 at 08:19 PM Obrigada pela Resposta Kriptosgeek 😞 Cumpz Martins!! Link to comment Share on other sites More sharing options...
maiden Posted December 11, 2007 at 09:31 PM Report Share #153747 Posted December 11, 2007 at 09:31 PM Boas, Kriptosgeek podes dar uma breve explicação da razão para declarares as funções de leitura getnome() e getraca() como pointers? Obrigado desde já. Cumps, Link to comment Share on other sites More sharing options...
Virtual Void Posted December 13, 2007 at 04:16 PM Report Share #154126 Posted December 13, 2007 at 04:16 PM o que ele declarou é que o valor de retorno da função é um char * (que vai ser nome ou raça dependendo da função). Se o valor de retorno fosse por exemplo um inteiro seria int get..(), se fosse boleano seria bool get...() e por ai fora cumps Link to comment Share on other sites More sharing options...
maiden Posted December 14, 2007 at 01:41 AM Report Share #154223 Posted December 14, 2007 at 01:41 AM Não era bem isso mas já percebi o porquê. Eu percebo a diferença entre tipos de dados, etc. Mas a minha dúvida residia no facto de ele utilizar char *get... e não char get... mas da segunda forma não retornaria os vector de caracteres e apenas um caracter (se estiver errado corrijam-me). Anyway, obrigado. Cumps, Link to comment Share on other sites More sharing options...
TheDark Posted December 14, 2007 at 02:48 AM Report Share #154225 Posted December 14, 2007 at 02:48 AM Com char *get.. o tipo de retorno é um apontador para um caracter. Neste caso esse caracter é o 1º de vários, mas o que importa é que retorna o endereço de um caracter. Se fosse char get.., o valor retornado seria o valor do próprio caracter, e não seria possível aceder ao resto do array. Por isso acho que tens a ideia correcta 😄 Desaparecido. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now