用户可以定义原语在基元之间的投射方式吗?或者他们如何投射到用户定义的类型?("隐式铸造构造函数"?yikes)
这是一个假设的问题,很难想象一个用法,但也许人们可能想要影响投注如何投入布尔.
您无法更改内置类型的行为方式.你不能像这样打破这种语言,就像你不能超越一个新operator+的ints来做其他事情.
语言需要能够做出某些基本保证,以便可以编写可以依赖基本行为的库!
您可以将任何类型来提供一个构造函数调用的一个参数,例如用户定义类型:
struct Foo
{
Foo(T const &);
// ...
};
Run Code Online (Sandbox Code Playgroud)
现在你可以说T x; Foo y = x;等等
你也可以反过来做,并提供转换从类:
struct Foo
{
operator S() const;
// ...
};
Run Code Online (Sandbox Code Playgroud)
现在你也可以说,S s = y;.
| 归档时间: |
|
| 查看次数: |
1409 次 |
| 最近记录: |