seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Participe do fórum, é rápido e fácil

seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

[tutorial] namespace

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1[tutorial] namespace Empty [tutorial] namespace Sex Ago 17, 2012 8:23 am

Kodo no Kami

Kodo no Kami
master
master

bom galera faz um tempo q eu nao faço um tutorial sobre c entao resolvi fazer esse, o namespace e uma estrutura q pode servi para varias coisas dependendo do programador, eu uso namespace para separar e organizar o codigo outro programador poderia usar para criar varias funçoes com o mesmo nome, veja o codigo abaixo

Código:
#include <iostream>

void soma(int x, int y)
{
    std::cout << x * y;
}

int main(void)
{
    soma(300,15);
    return 0;
}

na source acima na parte std::cout e a funçao cout serve para exibir o conteudo, o std em particular e um namespace, entao para agente poder usar a funçao cout tem q declarar o nasmespace antes no caso e std::cout, para nao precisar usar sempre std junto com cout agente pode declarar ela no começo do codigo com a funçao using

Código:
#include <iostream>

using std::cout;

void soma(int x, int y)
{
    cout << x * y;
}

int main(void)
{
    soma(300,15);
    return 0;
}

caso agente queira declarar todas as funçoes dentro do namespace agente usa using namespace

Código:
#include <iostream>

using namespace std;

void soma(int x, int y)
{
    cout << x * y;
}

int main(void)
{
    soma(300,15);
    return 0;
}

para criar um namespace basta digita namespace colocar um nome depois um bloco onde vc coloca todas as funçoes e variaveis q pertence a ele, veja um exemplo de um namespace chamado fts q tem uma variavel dentro

Código:
#include <iostream>

using std::cout;

namespace fts
{
    int x;
};

int main(void)
{
    fts::x = 315;
    cout << fts::x;
    return 0;
}

so lembrando para eu poder usar a variavel x q fica dentro eu tenho q declarar o namespace fts antes fts::x, eu posso usar using para declarar ela mais isso tem q ser depois do proprio namespace

Código:
#include <iostream>

using std::cout;

namespace fts
{
    int x;
};

using fts::x;

int main(void)
{
    fts::x = 315;
    cout << fts::x;
    return 0;
}

eu tambem poderia criar outras variaveis com o mesmo nome em namespace diferente veja

Código:
#include <iostream>

using std::cout;

namespace fts
{
    int x = 300;
};

namespace hack
{
    int x = 15;
};

int main(void)
{
    cout << fts::x << "\n";
    cout << hack::x;
    return 0;
}

by hacker fts315

https://endoffile.umforum.net

2[tutorial] namespace Empty Re: [tutorial] namespace Qua Nov 28, 2012 12:31 pm

s7L

s7L
colaborador
colaborador

Wow, legal. Smile
Só uma dúvida:
Porque alguém iria declarar uma variável usando "std::...", se pode fazer isso no começo do código? Tipo... Não ficaria mais leve o programa, se declarássemos o "using namespace std" no início?

3[tutorial] namespace Empty Re: [tutorial] namespace Qua Nov 28, 2012 1:50 pm

Kodo no Kami

Kodo no Kami
master
master

em certo ponto sim mais quando tem mais de uma funçao com o mesmo nome o programa da erro

Código:
#include <iostream>
#include <cstdlib>

using namespace std;

namespace fts
{
    void system(const char *texto)
    {
        cout << texto;
    }
};

using namespace fts;

int main(void)
{
    system("pause");
}

no caso do meu exemplo acima o compilador nao sabe se o system pertence ao meu namespace ou a funçao do cstdlib entao nem compila, se no caso eu nao tivesse usado "using namespace fts" e o compilador ia enteder q é a funçao do cstdlib, ja no exemplo abaixo

Código:
#include <iostream>
#include <cstdlib>

using namespace std;

namespace fts
{
    void system(const char *texto)
    {
        cout << texto;
    }
};

int main(void)
{
    fts::system("pause");
}

ele entende q o system pertence ao namespace fts, em casos assim e necessario usar std:: para diferenciar uma funçao da outra mais tirando isso recomendo declarar antes para evitar ficar escrevendo std:: antes das funçoes

https://endoffile.umforum.net

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos