Przeciążanie funkcji przypadek szczególny

2011-09-25 11:14
gepetto
1

Mam dwie funkcje:

void set( unsigned long long );
void set( const char * );

kompilator zwraca błąd dwuznaczności gdy jawnie wywołam funkcję set(0). Czy jest jakiś sposób by poinformować kompilator, jaką funkcję ma wywołać w takiej sytuacji?

Pozostało 580 znaków

2011-09-25 11:21
0

Ja bym spróbował

set((unsigned long long) 0)

albo set((const char*) 0)


"Sugeruję wyobrazić sobie Słońce widziane z orbity Merkurego, a następnie dupę tej wielkości. W takiej właśnie dupie specjalista ma teksty o wspaniałej atmosferze, pracy pełnej wyzwań i tworzeniu innowacyjnych rozwiązań. Pracuje się po to, żeby zarabiać, a z resztą specjalista sobie poradzi we własnym zakresie, nawet jeśli firma mieści się w okopie na granicy obu Korei."
-somekind,
konkretny człowiek-konkretny przekaz :]
edytowany 1x, ostatnio: MasterBLB, 2011-09-25 11:21

Pozostało 580 znaków

2011-09-25 11:54
0

Z punktu widzenia kompilatora to równie dobrze moze być set(NULL) co set(0). A jak dasz na przykład rzutowanie (j.w.) albo np. 0L ?


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2011-09-25 12:14
gepetto
0

Ale takie rozwiązania wymagają zaangażowania osoby, która korzysta z tej funkcji. Jestem ciekaw czy istnieje rozwiązanie ukryte przed klientem?

Pozostało 580 znaków

2011-09-25 12:15
0

Dlatego w C++11 prowadzono nullptr dzięki czemu unika się takich problemów.


Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0