Consider the double primitive type. Let we declare function as the following:
void foo(double);
Is it possible to describe a user-defined type which can be passed to foo as parameter?
Of course, though not through actual inheritance but by simulating it with an implicit conversion:
#include <iostream>
struct MoreDouble
{
operator double() { return 42.5; }
};
void foo(double x)
{
std::cout << x << '\n';
}
int main()
{
MoreDouble md;
foo(md);
}
// Output: 42.5
(Live demo)
Whether this is a good idea is another question. I dislike implicit conversions in general so make sure you really need this before using it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With