Date: prev next · Thread: first prev next last


Valeu, deixarei estes como estão, e só vou arrumar os apppends sucessivos!

Colocando a lista em cópia para documentação!


Em 5 de janeiro de 2013 18:53, José Guilherme Vanz
<guilherme.sft@gmail.com>escreveu:

Por default, eu não removeria os static. Eles garantem que exista somente
uma copia dessa variável em todo o programa, independente do número de
objetos. Mas isso depende da lógica do fonte...

Em outras palavras, esse variável é um "membro" da classe e não do objeto.
Exemplo:
Digamos que vc tenha uma classe "Foo" e que ela tenha um atributo static
chamado "contador". No construtor dessa classe vc sempre soma + 1 nesse
atributo...
Pois bem, cada vez que vc criar um novo objeto de "Foo", o "contador" sera
incrementado +1...

Em determinado local do fonte são instanciados dois objetos de "Foo".
Quando vc fazer um "getContador()" no primeiro ou no segundo objeto eles
irão retornar 2. Isso pq só existe uma cópia de "contador" em memória.

Resumindo... todos os objetos de Foo irão acessar o mesmo local de memória
da variável "contador". Não existira uma copia de "contador" para cara
objeto de "Foo", como geralmente ocorre. E quando vc altera o valor em um
dos objetos, vc altera em todos os outros tbm.

Conseguiram entender? Não sou o melhor professor do mundo, mas quando
alguém pergunta eu tento explicar...
Qualquer coisa podem me perguntar que vou tentar exemplificar melhor.







2013/1/5 Marcos Souza <marcos.souza.org@gmail.com>

Povo, existe algum motivo pra essa coisa toda de strings abaixo...?

Como não sou muito bom em OO, minha duvida seria se esses static fariam
diferença, ou poderia simplesmente dar append direto?


*void appendOneKeyColumnClause( const ::rtl::OUString &tblName, const
::rtl::OUString &colName, ::rtl::OUStringBuffer &o_buf )
    {
        static ::rtl::OUString s_sDot(".");
        static ::rtl::OUString s_sParam0(" ( 1 = ? AND ");
        static ::rtl::OUString s_sParam1(" = ? OR 1 = ? AND ");
        static ::rtl::OUString s_sParam2(" IS NULL ) ");
        o_buf.append(s_sParam0);
        o_buf.append(tblName);
        o_buf.append(s_sDot);
        o_buf.append(colName);
        o_buf.append(s_sParam1);
        o_buf.append(tblName);
        o_buf.append(s_sDot);
        o_buf.append(colName);
        o_buf.append(s_sParam2);
    }*

--
Att,

Marcos Paulo de Souza
Acadêmico de Ciencia da Computação - FURB - SC
Github: https://github.com/marcosps/
"Uma vida sem desafios é uma vida sem razão"
"A life without challenges, is a non reason life"




--
Att. José Guilherme Vanz
br.linkedin.com/pub/josé-guilherme-vanz/51/b27/58b/<http://br.linkedin.com/pub/jos%C3%A9-guilherme-vanz/51/b27/58b/>
http://blog.pt-br.libreoffice.org/
https://groups.google.com/d/forum/openqg




-- 
Att,

Marcos Paulo de Souza
Acadêmico de Ciencia da Computação - FURB - SC
Github: https://github.com/marcosps/
"Uma vida sem desafios é uma vida sem razão"
"A life without challenges, is a non reason life"

-- 
Você está recebendo e-mails da lista dev@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para dev+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
  dev+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/dev

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.