¿Hay alguna manera de definir un tipo de molde, por ejemplo, una clase definida por el usuario a un tipo primitivo (int, corto, etc.)? Además, ¿algún mecanismo de este tipo requeriría un lanzamiento explícito o funcionaría de manera implícita?C++ Definición de un molde de tipo
por ejemplo:
// simplified example class
class MyNumberClass
{
private:
int value;
public:
// allows for implicit type casting/promotion from int to MyNumberClass
MyNumberClass(const int &v)
{
value = v;
}
};
// defined already above
MyNumberClass t = 5;
// What's the method definition required to overload this?
int b = t; // implicit cast, b=5.
// What's the method definition required to overload this?
int c = (int) t; // C-style explicit cast, c=5.
// ... etc. for other cast types such as dynamic_cast, const_cast, etc.
Keep en mente, las conversiones implícitas son, en la mayoría de los casos, una mala cosa. Sería mejor hacer una función 'get()' explícita o algo así. – GManNickG
¿Por qué habría un problema con la conversión implícita? –