C ++ String & amp; Char *

Я пытаюсь преобразовать строку C ++ в cstring или char *. Я хочу, чтобы хэш-функция
char * всегда вызывается (после преобразования из строки). Я искал этот код в течение часа, а также искал. Неудачно.

char* a = "foo";
string b = "foo";

hash(a, 1); // calls the char* hash
hash(b, 1); // calls string hash

int hash(string key, int i){//STRING HASH
char const* cstring = key.c_str();
return hash(cstring, i);//should not be a recursive call but is
}

int hash(char* key, int i){//Cstring HASH
//should get called here
return hash(intKey, i);
}

Я надеюсь, что это достаточно ясно. Это был долгий день! :-п

Что-то интересное в том, что char * a и char const * a вызывают метод char * из main, но не из строкового метода. Интересно.

-1

Решение

(Опубликовано как ответ на запрос) Измените хэш-функцию на int hash(char const* key, int i)

4

Другие решения