Jump to content

3 duvidas


seuqram
 Share

Recommended Posts

Antes de mais, nenhuma das tuas dúvidas é de C, são todas de C++.

Deixa ver se te consigo ajudar.

1. Uma classe é um conjunto de dados e funções que pode ser usado para criar objectos.

Imagina, podes ter uma classe:

class Carro {
private:
  int posicao;
  int velocidade;
public:
  Carro(int pInician) {posicao=pInicial;velocidade=0;}
  void acelerar() {velocidade++;}
};

Com isto podes ter vários carros num programa, usando:

Carro carro1(0); // Posicao inicial=0
Carro carro2(10); // Posicao inicial=10

Entre outras coisas interessantes que podes fazer que não vou estar agora a apresentar.

2. Sabes o que são apontadores e desreferenciação?

Se tiveres, por exemplo, a classe carro indicada em cima, poderias fazer o seguinte para acelerar:

Carro c1(10);
c1.acelerar();

Carro *c2=new Carro(20); // Nota que isto é um apontador
(*c2).acelerar(); // Desreferencia o apontador e executa a funcao
// Que é o mesmo que fazeres
c2->acelerar();

Quanto à pergunta 3, não entendi bem a tua dúvida. Queres entender como utilizar multithreading ou queres compilar um programa com mais que um ficheiro .cpp?

MIEIC @ FEUP

http://project557.blogspot.com/ --- Development Blog

Proteja a sua pen: http://lastknight.pt.vu

Link to comment
Share on other sites

C não é uma linguagem orientada a objectos, C não tem classes.

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

1- o que são classes? o que favorecem? como se fazem?

Em C nao existe o conceito de classe. O mais parecido que ha é o conceito de estrutura.

2- em c o que é ->?

é o operador para aceder a um membro duma estrutura a partir de um ponteiro

ponteiro->membro

o mesmo que

(*ponteiro).membro

3- é possivel meter 2 funçoes a trabalhar ao mesmo tempo ou ligar dois .cpp?como?

Em c, a extensao mais usada é .c. Aparentemente puseste as tuas duvidas no quadro errado.

O Standard do C de 1999 (em PDF) (o Standard mais recente (em PDF), de Dezembro de 2011, ja tem qualquer coisa sobre isso, mas nao conheco implementacoes dessa nova versao da linguagem) nao especifica nenhuma maneira de por 2 funcoes a trabalhar ao mesmo tempo. Para o fazeres tens de usares bibliotecas extra. Le sobre "pthreads" (artigo da wikipedia (em ingles)).

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

os membros de uma classe são:

Construtores - definem o comportamento no momento da criação de um objeto de uma classe.

Destrutor - define o comportamento no momento da destruição do objeto de uma classe. Normalmente, como em C++, é utilizado para liberar recursos do sistema (como memória), já em outras linguagens, como em Java e C♯ isto é realizado de modo automático pelo Garbage collector.

Propriedades - define o acesso a um estado do objeto.

Eventos - define um ponto em que o objeto pode chamar outros procedimentos de acordo com seu comportamento e estado interno.

como se pode criar uma classe:

public class Pessoa {

        private String nome;

        public String getNome() {

                return nome;

        }

        public void setNome(String nome) {

                this.nome = nome;

        }

}

Link to comment
Share on other sites

os membros de uma classe são:

Construtores - definem o comportamento no momento da criação de um objeto de uma classe.

Destrutor - define o comportamento no momento da destruição do objeto de uma classe. Normalmente, como em C++, é utilizado para liberar recursos do sistema (como memória), já em outras linguagens, como em Java e C♯ isto é realizado de modo automático pelo Garbage collector.

Propriedades - define o acesso a um estado do objeto.

Eventos - define um ponto em que o objeto pode chamar outros procedimentos de acordo com seu comportamento e estado interno.

como se pode criar uma classe:

public class Pessoa {

        private String nome;

        public String getNome() {

                return nome;

        }

        public void setNome(String nome) {

                this.nome = nome;

        }

}

public? ? nao gosto nada dessa palavra! que faz?

o que favoresse as classes?

JDD557: Repara que a questão 2. do seuqram é de C, já que as struct em C têm membros e a nomenclatura "apontador->m" é usada para aceder ao membro "m" da estrutura apontada pelo "apontador".

aceder? como? o que muda? que faz?  😕

Link to comment
Share on other sites

O código que a Ana Baptista colocou é Java, não é C++. Mas, independentemente disso, as classes em C++ também utilizam os termos public, protected e private. Servem para definir se as funções ou variáveis são acessíveis publicamente, acessíveis apenas pelos objectos da mesma subclasse ou apenas acessíveis por objectos da própria classe.

A questão do -> é o seguinte:

class Xpto {
    public:
        int func();
};


//...

int main() {
    Xpto x1;
    x1.func();

    Xpto* x2 = new Xpto;
    x2->func();
}

Consoante estejas a trabalhar com objectos ou ponteiros para objectos, a forma como acedes aos seus membros (funções, variáveis) é diferente.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.