Diego_Bittencourt Postado Agosto 8, 2005 Denunciar Share Postado Agosto 8, 2005 Olá galera!Queria saber por quê em alguns compiladores temos que usar 'using namespace std' para usar o objeto 'cout' e outros objetos em C++?Falow! Link para o comentário Compartilhar em outros sites More sharing options...
0 Wicker Man Postado Agosto 8, 2005 Denunciar Share Postado Agosto 8, 2005 Opa!Isso é necessário para que você possa usar o ambiente de nomes (namespace) "std", onde "cout" está definido. Os ambientes de nomes são usados para evitar confiltos de escopo, ou seja, quando o escopo de uma variável "penetra" no escopo de outra variável com o mesmo nome da primeira.Espero ter ajudado.Até mais. Link para o comentário Compartilhar em outros sites More sharing options...
0 Andersonjb Postado Agosto 12, 2005 Denunciar Share Postado Agosto 12, 2005 Como assim uma variavel pode penetrar o escopo de outra, você pode me dar um exemplo??? Link para o comentário Compartilhar em outros sites More sharing options...
0 Wicker Man Postado Agosto 12, 2005 Denunciar Share Postado Agosto 12, 2005 Observe o caso abaixo:#include <cstdlib> #include <iostream> using namespace std; int n = 15; namespace exemplo { int n = 10; } int main() { cout << "n global: " << n << endl; cout << "n do ambiente exemplo: " << exemplo::n << endl; system("PAUSE"); return 0; }Nesse caso temos uma variável global "n" e outra com o mesmo nome definida em um ambiente de nomes. Quando você quiser usar a "n" do escopo global, terá que referenciá-la diretamente; e quando quiser usar a "n" do namespace, é só usar o operador de definição de escopo ( :: ) precedido pelo nome do namespace e sucedido pelo componente deste namespace a ser utilizado. Sendo assm, os conflitos de escopo relacionados à variável "n" são solucionados com o uso de ambientes de nomes.Deu pra sacar? Link para o comentário Compartilhar em outros sites More sharing options...
0 Andersonjb Postado Agosto 14, 2005 Denunciar Share Postado Agosto 14, 2005 então namespaces são ambientes de nomes onde eu posso definir variaveis do proprio ambiente? Link para o comentário Compartilhar em outros sites More sharing options...
0 Wicker Man Postado Agosto 14, 2005 Denunciar Share Postado Agosto 14, 2005 Não só variáveis como também funções e objetos. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Bittencourt Muniz Postado Agosto 14, 2005 Denunciar Share Postado Agosto 14, 2005 'namesapce'(ambientes de nomes) seria o sinônimo de classe? Link para o comentário Compartilhar em outros sites More sharing options...
0 bruuh' Postado Abril 23, 2011 Denunciar Share Postado Abril 23, 2011 Então se eu por using namespace std; é o mesmo que using std::cout; ou using std::cin; ou using std:: endl; ? Link para o comentário Compartilhar em outros sites More sharing options...
0 Myho Postado Abril 23, 2011 Denunciar Share Postado Abril 23, 2011 (editado) Quando você declara o using namespace std está avisando ao compilador que você quer usar tudo o que está definido no namespace em seu código, dessa forma pode-se acessar os objetos e funções contidos nesse namespace diretamente, sem necessidade de referenciar o nome.Aqui tem uma boa explicação -> http://www.cprogramming.com/tutorial/namespaces.htmlEntão se eu por using namespace std; é o mesmo que using std::cout; ou using std::cin; ou using std:: endl; ?Colocando o using namespace std você pode acessar os objetos mencionados e todos os outros contidos em std diretamente. Usando a somente using std::cout por exemplo só permite acesso direto ao obejto cout.'namesapce'(ambientes de nomes) seria o sinônimo de classe?Não seria, namespaces não precisam ser instanciados, não são objetos, inclusive dentro de um namespace você pode ter classes e objetos já instaciados, até poderíamos associar a idéia de namespace com uma classe estática mas em teoria não são sinônimos.Obs.: Tópico ressuscitado de 2005 oO Editado Abril 23, 2011 por Myho Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Diego_Bittencourt
Olá galera!
Queria saber por quê em alguns compiladores temos que usar 'using namespace std' para usar o objeto 'cout' e outros objetos em C++?
Falow!
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados