ole1990 Posted October 14, 2012 at 11:41 PM Report #479183 Posted October 14, 2012 at 11:41 PM 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
HappyHippyHippo Posted October 15, 2012 at 12:02 AM Report #479184 Posted October 15, 2012 at 12:02 AM classe é uma classe onde tiras-te a ideia de que seria algo diferente ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
ole1990 Posted October 15, 2012 at 01:14 AM Author Report #479185 Posted October 15, 2012 at 01:14 AM No main, não consigo invocar os metodos
HappyHippyHippo Posted October 15, 2012 at 01:35 AM Report #479187 Posted October 15, 2012 at 01:35 AM 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) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
mogers Posted October 15, 2012 at 09:17 AM Report #479198 Posted October 15, 2012 at 09:17 AM 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.
ole1990 Posted October 15, 2012 at 08:09 PM Author Report #479254 Posted October 15, 2012 at 08:09 PM 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?
HappyHippyHippo Posted October 15, 2012 at 08:12 PM Report #479255 Posted October 15, 2012 at 08:12 PM 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) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pikax Posted October 15, 2012 at 08:54 PM Report #479274 Posted October 15, 2012 at 08:54 PM (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 October 15, 2012 at 08:56 PM 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."
ole1990 Posted October 16, 2012 at 01:47 AM Author Report #479293 Posted October 16, 2012 at 01:47 AM Sim isso eu sei, Mas num ficheiro diferente???
mogers Posted October 16, 2012 at 09:03 AM Report #479306 Posted October 16, 2012 at 09:03 AM (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 October 16, 2012 at 09:04 AM 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.
pikax Posted October 16, 2012 at 11:19 AM Report #479319 Posted October 16, 2012 at 11:19 AM 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."
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now