C++ 文字列を cstring または char* に変換しようとしています。char* を受け取るハッシュ関数が常に呼び出されるようにしたい (文字列から変換した後)。私はこのコードを1時間見ていて、検索もしています。運がない。
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);
}
これが十分に明確であることを願っています。長い一日でした!:-p
興味深いのは、char* a と char const* a が、string メソッドからではなく main から char* メソッドを呼び出していることです。面白い。