Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Bernardo Vieira

É correto? Ou não deve ser assim? ( Class )

Mensagens Recomendadas

Bernardo Vieira

Bom, eu uso C++ para desenvolvimentos de plugin para um server MultiPlayer e é necessario o parametro playerid como devem imaginar. Entao, até agora eu usava struct, mas como estou a usar C++ e também ainda estou a aprender decidi usar class (estou a estudar orientacao a objecto, mas nao sei quase nada ou nada ainda) e por isso vim fazer duas perguntas

1 - aconcelham-me a usar class como no exemplo abaixo ou devo usar struct e depois aquelas funcoes ( onde coloca os valores e multiplica ) colocar noutra parte do codigo ?

2 - eu fiz um pequeno teste para ver se funcionava correto, bom, funinou, mas eu tenho uma duvida, o MAX eu posso usar ali ou fará problemas com outros valores por só criar um cubo uma vez (Cubo teste1[MAX]) ?

#include <iostream>

#define MAX 50

using std::cout;
using std::endl;

class Cubo {
private:
 int largura;
 int altura;

public:
 Cubo() {
   Apagar();
 }

 ~Cubo() {
   Apagar();
 }

 void setLargura(int l) {
   largura = l;
 }

 void setAltura(int a) {
   altura = a;
 }

 int multiDim(void) {
   return (largura * altura);
 }

 void Apagar() {
   altura = 0;
   largura = 0;
 }
};

int main() {
 Cubo teste1[MAX];

 cout << teste1[0].multiDim() << endl;

 teste1[0].setAltura(5);
 teste1[0].setLargura(5);
 cout << teste1[0].multiDim() << endl;

 teste1[0].~Cubo();

 teste1[1].setAltura(6);
 teste1[1].setLargura(6);
 cout << teste1[0].multiDim() << endl;
 cout << teste1[1].multiDim() << endl;

 teste1[45].setAltura(10);
 teste1[45].setLargura(10);
 cout << teste1[0].multiDim() << endl;
 cout << teste1[1].multiDim() << endl;
 cout << teste1[45].multiDim() << endl;

 system("pause");
 return 1;
}

PS. desculpem por isto nao estar espaçado, é culpa da pagina, eu aqui tenho tudo correto!

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax
1 - aconcelham-me a usar class como no exemplo abaixo ou devo usar struct e depois aquelas funcoes ( onde coloca os valores e multiplica ) colocar noutra parte do codigo ?

Em C++ a UNICA diferenca entre uma class e uma struct e' que a class por defeito os membros sao privados e a struct sao publicos.

No construtor podes inicializar as variaveis:

Cubo(): largura(0), altura(0){}

2 - eu fiz um pequeno teste para ver se funcionava correto, bom, funinou, mas eu tenho uma duvida, o MAX eu posso usar ali ou fará problemas com outros valores por só criar um cubo uma vez (Cubo teste1[MAX]) ?

Podes usar, se te for mais pratico para ti. Nao estas a criar um cubo de cada vez, estas a criar(neste caso) 50 Cubos de uma so' vez.

  • Voto 1

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."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Bernardo Vieira

Em C++ a UNICA diferenca entre uma class e uma struct e' que a class por defeito os membros sao privados e a struct sao publicos.

ahh bom, sim, por acaso reparei que mesmo sem usar private: as variaveis eram privadas sim!

No construtor podes inicializar as variaveis:

Cubo(): largura(0), altura(0){}

ah sim, também pesquisei sobre como inicializar os valores e vi isso. Obrigado :)

Podes usar, se te for mais pratico para ti. Nao estas a criar um cubo de cada vez, estas a criar(neste caso) 50 Cubos de uma so' vez.

ahhh, exato exato, era isso que eu queria saber, se estava a criar 50 cubo ou se estava a criar só um partido em 50 partes e isso daria problema. Bom, eu achei que estava a criar 50 cubos, mas para nao ficar duvida

bom, era isso

Muito obrigado :)

Editado por Bernardo Vieira

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmaa

Em C++ a UNICA diferenca entre uma class e uma struct e' que a class por defeito os membros sao privados e a struct sao publicos.

Não só: a herança de uma struct é por defeito pública e a de uma classe é por defeito privada:

struct Derivada:Base

é equivalente a

class Derivada:public Base

É por isso que os mais preguiçosos tendem a usar structs ... sim uso sempre structs.

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.