はいといいえ
これは、使用しているC++のバージョンによって異なります。
例、
struct A
{
//implicit conversion to int
operator int() { return 100; }
//explicit conversion to std::string
explicit operator std::string() { return "explicit"; }
};
int main()
{
A a;
int i = a; //ok - implicit conversion
std::string s = a; //error - requires explicit conversion
}
あなたはこのエラーを取得します、g++ -std=c++0x
でそれをコンパイルし
std::string s = static_cast<std::string>(a); //ok - explicit conversion
エラーが消える:http://ideone.com/LhuFd
をBTW、C++ 11に、明示的な変換演算子は、それがブールに変換する場合「コンテキスト変換演算子」と呼ばれています。また、あなたがこのトピックを読んで、暗黙的および明示的な変換についての詳細をお知りになりたい場合は:
お役に立てば幸いです。
+1。 C++ 11コードの例を載せてください。 – FailedDev
@FailedDev:完了。 :-) – Nawaz
非常に良いおかげで! – FailedDev