У меня есть конструктор, который принимает объект типа Material
:
SomeClass::SomeClass( const Material& mat ) ;
Тем не менее, Material
позволяет конструировать по Vector
:
Material::Material( const Vector& v ) ;
Следовательно,SomeClass
может разрешить построение с помощью Vector
:
SomeClass m( vec ) ; // valid, since vec is constructed to a Material first,
// then is passed to the SomeClass(Material) ctor
Однако, после "стрельбы себе в ногу" более одного раза ctors этого типа (в разных классах втот же проект!) Я хочу запретить построение SomeClass
непосредственно Vector
объектов, вместо этого всегда требуя вместо этого Material
.
Есть ли способсделай это?Почему-то думаю, что это связано с ключевым словом explicit
.