void func1(const char* str){}
void func2(char*& str){}
void func3(const char*& str){}
int main(){
char* hoge=NULL;
const char* mosa=NULL;
func1(hoge); // 例1
func1(mosa); // 例2
func2(hoge); // 例3
func2(mosa); // 例4
func3(hoge); // 例5
func3(mosa); // 例6
return 0;
}
とすると、
例1は成功。
例2は成功。
例3は成功。
例4は失敗。const char* をchar*&に変換できなくて。
例5は失敗。char*をconst char*&に変換できなくて。
例6は成功。
つまり、char*をconst char*に変換するのは自動的にやってくれる。
char*をchar*&なら自動的に変換してくれる。
const char*をconst char*&なら自動的に変換してくれる。
const char*をchar*&には変換できない。
char *をconst char*&には変換できない。
まとめると、
char*をconst char*に変換してくれるなら、char*をconst char*&に変換してくれてもいいんじゃないかと思う。
コメントを残す