C++/Przestrzenie nazw: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Derbeth (dyskusja | edycje)
m Wycofano zmiany wprowadzone przez Wikipedystę:83.19.182.42 i przywrócono wersję ostatnio zmienioną przez Wikipedystę:Mythov.
Linia 62:
Ale właściwie do czego są używane przestrzenie nazw? Przede wszystkim zapewniają pewien komfort programiście. Pisząc np. jakąś funkcję, nie musimy się martwić jak się ją nazwie, ponieważ raczej nie spowoduje to żadnych kolizji nazw z nazwami innych funkcji, które na przykład znajdują się w innych bibliotekach (no chyba, że dana nazwa jest już zajęta w używanej przestrzeni nazw). Możemy w obrębie różnych przestrzeni nazw tworzyć funkcje o takich samych nazwach i deklaracjach, ale robiące zupełnie inne operacje!
 
=== Tworzenie własnej przestrzeni nazw ===
huj ci w dupe
Przestrzeń nazw tworzymy za pomocą słowa kluczowego <tt>namespace</tt>, ograniczając zawartość klamrami. Możemy na przykład stworzyć przestrzeń nazw <tt>HelloWorld</tt> zawierającą funkcję <tt>hello( )</tt>:
 
<pre class="lang-cpp">
#include <iostream>
 
namespace HelloWorld
{
void hello( )
{
std::cout << "Hello World!" << std::endl;
}
}
 
int main( )
{
HelloWorld::hello( );
return 0;
}
</pre>
 
Oczywiście, gdybyśmy wstawili <tt>using namespace HelloWorld</tt> przed funkcją <tt>main</tt> (a nawet wewnątrz tej funkcji), nie musielibyśmy odwoływać się bezpośrednio do <tt>HelloWorld</tt>, wystarczyłoby samo <tt>hello( )</tt>.
 
Nie musimy zamieszczać od razu wszystkiego, co chcielibyśmy, aby się znalazło w naszej przestrzeni nazw. Możemy rozbić to na wiele części:
 
<pre class="lang-cpp">
namespace Matematyka
{
int dodaj( int a, int b )
{
return a+b;
}
 
int odejmij( int a, int b )
{
return a-b;
}
}
 
namespace Matematyka
{
int pomnoz( int a, int b )
{
return a*b;
}