例子1:
有时候,如果你不希望编译器帮你自动转换类型,就用关键字 explicit 。
class SampleClass1{
public:
operator string() { return string();}
};
class SampleClass2{
public:
explicit operator string() {return string();}
};
void getstring(const string& s) {}
int main() {
SampleClass1 s1;
SampleClass2 s2;
getstring(s1);
// getstring(s2); //错误: 无法将参数 “s2” 转换为“const string& ”
getstring((string)s2);
return 0;
}