Variable
次のように定義されている char* 用の特殊なコンストラクターを持つ、 というテンプレート クラスがあります。
template<>
Variable<char*>::Variable(char * const &arg_value)
{
value = new char[strlen(arg_value) + 1];
strncpy(value, arg_value, strlen(arg_value));
value[strlen(arg_value)] = '\0';
}
今、私は次のステートメントを宣言していVariable<char*>
ます:
Variable<char*> stringVar = const_cast<char*>("Hi");
私のVariable
定義では、const char* へのコピー コンストラクターを宣言または定義したことはありません。ただし、ステートメントは完全に正常に機能します。どうしてこれなの?stringVar
のデータ型を持つことは非常に肯定的ですがVariable<char*>
、これはまだ機能します。この任務はどこから来たのですか?