Jump to content
Fórum Script Brasil
  • 0

Classes


Bolt 4
 Share

Question

Ae gente beleza?

Estou estudando um livro e parei em classes,tem um exemplo,ele está bem difícil para mim entender,queria a ajuda de vocês.

Como o exemplo está em inglês,as palavras estão me confundindo,queria ver se vocês pudessem substituir as palavras em inglês por palavras que explicassem o programa,para que eu possa entender como realmente ele está funcionando.

Esse é o código:

//figura 3.5: fig03_05.cpp
//define a classe GradeBook que contém um membro de dados courseName
//e funções-membro para configurar e obter seu valor;
//cria e manipula um objeto Gradebook com essas funções.
#include<iostream>
using std::cout;
using std::cin;
using std::endl;

#include<string>
using std::string;//o programa utiliza classe de string padrão C++
using std::getline;

//definição da classe Gradebook
class GradeBook
{
    public:
    //função que configura o nome do curso
    void setCourseName(string name)
    {
        courseName=name;//armazena o nome do curso no objeto
    }//fim da função setCourseName

    //função que obtém o nome do curso
    string getCourseName()
    {
        return courseName;//retorna courseName do objeto
    }//fim da função getCourseName

    //função que exibe mensagem de boas-vindas
    void DisplayMessage()
    {
        //essa intrução chama getCourseName para obter o
        //nome do curso que esse GradeBook representa
        cout<<"Welcome to the grade book for\n"<<getCourseName()<<"!"
        <<endl;
    }//fim da função Display Message
    private:
    string courseName;//nome do curso para essa GradeBook
};//fim da classe GradeBook

//a função main inicia a exacução do programa
int main()
{
    string nameOfCourse;//string para armazenar o nome do curso
    GradeBook myGradeBook;//cria um objeto GradeBook chamado myGradeBook

    //exibe valor inicial de couseName
    cout<<"initial course name is: "<<endl;
    getline(cin,nameOfCourse);//lê o nome do curso
    myGradeBook.setCourseName(nameOfCourse);//configura o nome do curso

    cout<<endl;//gera a saída de uma linha em branco
    myGradeBook.DisplayMessage();//exibe amensagem com o novo nome do curso
    return 0;
}//fim do main

Podem mandar por email,se acharem melhor,o endereço é [email protected] .

Se puderem ajudar,já agradeço desde já,obrigado!

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Bom... não sei se entendi exatamente oque você quer... já que o código do programa está todo comentado ....

Pra você entender melhor esse métodos que estão dentro da classe pense no seguinte... pense que as variáveis que estão lá dentro são privadas... daí você só vai poder acessa-las através dos métodos... então você cria métodos pra inserir valores nessas variáveis e pra saber o valor que está lá dentro dessa variável..

Vou dar uma modificadazinha no código pra ver se você entende..

class GradeBook
{
    private:
         Nome_do_curso;
   public:
        void Insere_nome_do_curso(string nome);
        string Informa_nome_do_curso();
};

void GradeBook::Insere_nome_do_curso(string nome)
{
   Nome_do_curso=nome;
}

string GradeBook::Informa_nome_do_curso()
{
return Nome_do_curso;
}

é basicamente essa a idéia ...

Espero ter ajudado .... ;)

Link to comment
Share on other sites

  • 0

Mi_Mi,

Obrigado pela atenção,ajudou sim,não no completo entendimento mas de alguma forma sim.

As funções get e set ,estão confusas para minha cabeça ainda,mas esse exemplo me parece uma introdução,mais a frente será mais explicado,devagar eu vou aprendendo as pequenas coisas.

Muito obrigado,só sua atenção já valeu muito,t+!

Link to comment
Share on other sites

  • 0

Opa!

Cara, uma classe é uma estrutura que engloba as propriedades e funcionalidades de uma determinada categoria (classe) de objetos. As classes podem conter dados/funções públicos, privados e protegidos. Dados/funções protegidos estão relacionados a herança, então nos concentremos nos dados públicos e privados por agora. As funções em uma classe são chamadas métodos. As variáveis são os membros de dados da classe.

Por exemplo, observe a classe a seguir:

class MinhaClasse {
    public:
         void MetodoPublico();  // método público (função)
         int DadoPúblico; // membro de dados público (variável)

    private:
        void MetodoPrivado(); // método privado (função)
        int DadoPrivado; // membro de dados privado (variável)
};

Como você pode perceber, membros de dados e métodos públicos estão sob a palavra-chave public, e os privados sob private. A diferença entre esses especificadores é que quando você cria um objeto dessa classe, esse objeto somente poderá fazer chamadas explicitas aos métodos públicos. Os métodos e dados privados só podem ser acessados pelos métodos (públicos ou privados) da classe.

Isso é só o basicão mesmo, uma abordagem muito inicial e aproximada. Assim, se remanesceram dúvidas, poste-as. Estude um pouco mais sobre classes e dê uma pesquisada sobre engenharia de software para entender melhor algumas "regras" para o bom projeto de classes.

Boa sorte!

Link to comment
Share on other sites

  • 0

Wicker Man,

Valeu heim! Essa parte do public e do private eu tinha entendido,com as suas explicações ficaram bem mais claras agora.

Sei que os objetos são criados em main, para chamar as funções membro da classe,por que me parece que essas funções são meio que locais por isso precisam do objeto para ser chamadas em outra função. Para armezenar nomes é preciso criar uma variável tipada para poder armazenar esses dados. Vai demorar bastante para coompreender essa organização de funções membro serem chamadas em main. Para novas dúvidas é como você mesmo disse,estudar um pouco mais,se as estiver concerteza postarei.

Se falei alguma coisa errada me corrija,por que na minha cabeça é isso que entendi até agora sobre classes.

T+,muito obrigado mesmo!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...