CPP const char * paraméterrel rendelkező függvény miért nem fut?
Van egy függvényem, ami const char *p, int base = 10 paraméterekkel hívódik meg. Lényegében egy atoi.
Minden jól lefut, ha a paraméter nem const.
Amikor meghívnám, azt a hibát kapom, hogy kétértelmű. Miért van ez?
int atoi(const char *p, int base = 10){
for(int i=0; i<strlen(p);i++){
int szam = static_cast<int>(p[i]);
if (szam>base-1){
throw ("hiba");}
}
int res = 0;
for (int i = 0; p[i] != '\0'; ++i)
res = res*base + p[i] - '0';
return res;
}
Hát így ránézésre feltételezem kihasználod híváskor, hogy a második paraméternek van default értéke, ezért csak egy karakterláncot adsz át neki, továbbá be van húzva az stdlib is. Ekkor a fordító nem fogja tudni, hogy most a saját atoi() függvényedet vagy az stdlibben levőt kellene használnia: [link]
Adj más nevet a függvényednek.
#5
Ok, hát akkor vagy nem kell behúzni az stdlibet vagy nem kell behúzni a teljes std namespace-t vagy a saját atoi függvényt saját namespace-be kell tenni, stb.
Nem tudom mik a pontos kritériumok egy ilyen házinál, de igazából csak egyértelművé kell tenni, hogy melyik függvényt akarjuk használni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!