Iod Postado Outubro 3, 2012 Denunciar Share Postado Outubro 3, 2012 (editado) ola começei a aprender classes hoje por meio de uma apostila, mais o codigo da classe e muito trabalhoso e não faz quase nada a principio existem exemplos nessa apostila que tem 100 linhas e fazem a mesma coisa que uma estrutura faria em 10, não sei se o intuito da apostila e entroduzir as classes de forma trabalhosa para entender melhor todo o seu conteudo ou se classes são uma dor de cabeça mesmo. se alguém conheser alguma apostila,livro ou tutorial que ensine classes de forma descomplicada ou ate mesmo me dizer qual e o real sentido das classes eu agradeço// ConstMt.cpp // Ilustra o uso // de métodos const. #include <iostream.h> // Define uma classe. class Cliente { // Por default, estes membros // são //private: int numCliente; float saldo; // Estes métodos // são private e const. int acessaNumCliente() const; float acessaSaldo() const; public: // Construtor default. Cliente(); // Outro construtor. Cliente(int, float); // Destrutor. ~Cliente(); // Métodos public. void exibe() const; void defineNumCliente(int); void defineSaldo(float); }; // Fim de class Cliente. int main() { // Cria um objeto // da classe cliente // sem definir valores. Cliente objCliente1; // Cria um objeto // da classe cliente // inicializado. Cliente objCliente2(572, 777.77); // Exibe valores. cout << "\n*** Valores p/ objcliente1 ***"; objCliente1.exibe(); cout << "\n*** Valores p/ objcliente2 ***"; objCliente2.exibe(); // Modifica valores. cout << "\nModificando valores...\n"; objCliente1.defineNumCliente(1000); objCliente1.defineSaldo(300.00); objCliente2.defineNumCliente(2000); objCliente2.defineSaldo(700.00); // Exibe novos valores. cout << "\n*** Novos valores p/ objcliente1 ***"; objCliente1.exibe(); cout << "\n*** Novos valores p/ objcliente2 ***"; objCliente2.exibe(); } // Fim de main() // Implementação dos métodos. // Construtores. Cliente::Cliente() { numCliente = 0; saldo = 0.0; } // Fim de Cliente::Cliente() Cliente::Cliente(int i, float f) { numCliente = i; saldo = f; } // Fim de Cliente::Cliente(int, float) // Destrutor. Cliente::~Cliente() { cout << "\nDestruindo cliente..."; } // Fim de Cliente::~Cliente() int Cliente::acessaNumCliente() const { return numCliente; } // Fim de Cliente::acessaNumCliente() float Cliente::acessaSaldo() const { return saldo; } // Fim de Cliente::acessaSaldo() void Cliente::exibe() const { cout << "\nCliente = " << acessaNumCliente() << ", Saldo = " << acessaSaldo() << "\n"; } // Fim de Cliente::exibe() void Cliente::defineNumCliente(int iVal) { numCliente = iVal; } // Fim de Cliente::defineNumCliente() void Cliente::defineSaldo(float fVal) { saldo = fVal; } // Fim de Cliente::defineSaldo()a unica funçao desse codigo e atribuir valores a uma variavel int e um float Editado Outubro 3, 2012 por Iod Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo Utikawa da Fonseca Postado Outubro 3, 2012 Denunciar Share Postado Outubro 3, 2012 Olá!Realmente este código está confuso para ser apenas a introdução a classes. E concordo que é muito mais do que seria feito com uma estrutura simples!Porém nesse código já se vê conceitos importantes:1) Construtores: funções que são chamadas quando se instancia um objeto da classe, dando a oportunidade de se controlar a inicialização como valores iniciais de variáveis, etapas adicionais como carregamento de uma dll, por exemplo2) Proteção no acesso aos dados: diferentemente do que acontece em uma estrutura, existe a proteção quanto ao acesso dos dados (através do private e protected). Assim você consegue garantir a integridade dos valores carregados nas variáveis, tornando o programa mais seguro quanto a erros de programação, por exemplo.3) Destrutores: sempre que uma instância for destruída é possível executar uma função sua onde você pode, por exemplo, desalocar áreas de memória, notifica outras partes do programa, etc. Assim não depende do programador a realização de certas tarefas que podem ser eventualmente esquecidas, afetando a qualidade do programa.Além disso ainda existem muitas e muitas outras características na programação orientada a objetos como herança, polimorfismo, etc...Segue abaixo um exemplo mais simples:#include <stdio.h> class Pessoa { private: char nome[100]; int idade; public: void carregar(char *novo_nome, int nova_idade) { strcpy(nome, novo_nome); idade = nova_idade; } void exibir(void) { printf("Eu sou %s e tenho %d anos.\n", nome, idade); } }; int main(void) { Pessoa p; p.carregar("Fulano", 20); p.exibir(); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Iod
ola começei a aprender classes hoje por meio de uma apostila, mais o codigo da classe e muito trabalhoso e
não faz quase nada a principio existem exemplos nessa apostila que tem 100 linhas e fazem a mesma coisa que uma
estrutura faria em 10, não sei se o intuito da apostila e entroduzir as classes de forma trabalhosa para entender melhor
todo o seu conteudo ou se classes são uma dor de cabeça mesmo. se alguém conheser alguma apostila,livro ou tutorial
que ensine classes de forma descomplicada ou ate mesmo me dizer qual e o real sentido das classes eu agradeço
a unica funçao desse codigo e atribuir valores a uma variavel int e um float
Editado por IodLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.