私は最近、3 つのコンストラクタを持つ奇妙なクラスに出くわしました。
class Class
{
public:
explicit Class(int );
Class(AnotherClass );
explicit Class(YetAnotherClass, AnotherClass );
// ...
}
これは私にはあまり意味がありません。明示的なキーワードは、コンパイラが選択した構造を外部の型から保護するためのものだと思いました。
これは許されますか?もしそうなら、それはどういう意味ですか?