Jump to content

Recommended Posts

Posted

Boas noites,

Poderiam me indicar se o "tipo de classe" só com métodos são as mesmas do que as classes para criar objectos.

Ou seja quero criar uma classe que contenha vários métodos para ler vários tipos de ficheiros, tenho na mesma no ficheiro .h a declaração dos métodos e no ficheiro .cpp a definição desses mesmo?

Cumprimentos

Posted

Se queres ter simplesmente funcoes "uteis" que nao usam quaisquer atributos comuns como seria normal numa classe, uma hipotese e' usar namespaces para agrupar essas funcoes num espaco comum e nao "poluir" os nomes globais.

Ve por exemplo http://www.cplusplus.com/doc/tutorial/namespaces/

"What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine

Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.

Posted

o que pretendo é ter uma classe só com métodos.

Em java posso ter classes só com métodos e depois para os invocar é:

nome_da_class.nome_do_metodo

Não dá para fazer algo parecido em java?

Posted (edited)

o que pretendo é ter uma classe só com métodos.

Em java posso ter classes só com métodos e depois para os invocar é:

nome_da_class.nome_do_metodo

Não dá para fazer algo parecido em java?

Se queres ter simplesmente funcoes "uteis" que nao usam quaisquer atributos comuns como seria normal numa classe, uma hipotese e' usar namespaces para agrupar essas funcoes num espaco comum e nao "poluir" os nomes globais.

Ve por exemplo http://www.cplusplus.com/doc/tutorial/namespaces/

porque tens de instanciar a classe, caso contrário só usando métodos estáticos (que só podem usar outros métdos estáticos da classe)

como em java, e como referi acima, só podes fazer isso com métodos estáticos.

caso não pretendas usar métodos estáticos, tens que instanciar a classe.

(já me estou a repetir)

class xpto
{
 static void Imprimir(int n, string str)
 {
for(int i=0;i<n;++i)
  cout<<i<<"  -  "<<str<<endl;
 }
}

namespace xxx
{
 void Imprimir(int n, string str)
 {
for(int i=0;i<n;++i)
  cout<<i<<"  -  "<<str<<endl;
 }
}

class pap
{
 void Imprimir(int n, string str)
 {
for(int i=0;i<n;++i)
  cout<<i<<"  -  "<<str<<endl;
 }
}

void Imprimir(int n, string str)
{
 for(int i=0;i<n;++i)
   cout<<i<<"  -  "<<str<<endl;
}

int main()
{
 xpto.Imprimir(15,"Isto e' uma funcao estatica!!");
 xxx::Imprimir(25,"isto e' uma namespace!!");
 pap obj;
 obj.Imprimir(5,"isto e' uma class instanciada!!");
 Imprimir(10,"Isto e' uma funcao normal!!");
}

edit: add funcao

Edited by pikax

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

Posted (edited)

Pikax, faltam-te os ";" no fim da declaracao das classes.

Ole, defines as classes num ficheiro "Classe.h" e (preferencialmente a implementacao em) "Classe.cpp" ou "Classe.cc". No main fazes #include "Classe.h".

Edited by mogers

"What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine

Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.

Posted

Pikax, faltam-te os ";" no fim da declaracao das classes.

👍

pois e'... e' o que da' em nao programar em C++ 'a muito tempo 😄

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

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
×
×
  • 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.