|
|
1
6
您只能隐式地将对象强制转换为它们继承自或实现的类型-因为
根据您的要求,您可以通过编写
explicit conversion operator
创建一个
|
|
|
2
4
你为什么要先把它扔给一个头儿?如果iHeaderRow生成了HeaderRow实现的API,那么您应该能够使用定义的方法对iHeaderRow“对象”执行操作。 接口的要点是,您可以将不同对象的分组视为类似的类型。不是这样,您就可以在没有通过继承链接的类之间强制转换不同的对象。 |
|
|
3
2
首先,你为什么要做这么奇怪的演员?对于你想做的事情,可能还有另一种设计。
第二,你不能做这个演员的原因是因为一个RAWROW
不是
头尾它唯一的保证就是它能实现
想象一下你的课程是这样的:
现在,如果你这样做,你就没事了:
但试一下这个尺寸:
这就是为什么你不能把它扔到继承树的外面。 |
|
|
4
1
除非一个继承自另一个,否则不能将ObjectRawrow强制转换为HeaderRow。 接口与之无关。 考虑:
|
|
5
1
除非类型之间存在继承关系,否则无法进行此强制转换。如果这不可能,那么最好创建一个显式转换运算符,允许您将一个类型转换为另一个类型。 如果确实创建了显式转换,您应该理解这将比强制转换慢,因为您将调用一个可以工作的方法,而不是强制转换,后者只更改引用类型,不会更改堆上的任何内存。 考虑这个不编译的示例:
因为类型之间没有继承关系,也没有从
但是添加显式转换允许它编译:
|
|
|
6
0
如果对象实际上是某个类的实例(或从该类派生),则只能将实例强制转换为该类。 不可能将类A的实例强制转换为完全不相关的类B(这正是您要做的),即使它们实现相同的接口。 |
|
|
7
0
你可以使用
explicit keyword
创建在尝试从中强制转换时将调用的方法
|
|
|
DutChen18 · 如何在C宏中内联触发隐式指针转换? 1 年前 |
|
|
0xDED · 如何将泛型类强制转换为对象的泛型类? 1 年前 |
|
|
Niclas · 变量>-1如何在C中精确求值? 2 年前 |
|
|
Textime · 将Varchar2转换为时间 2 年前 |
|
|
xpt · Go,无法将类型*int32转换为类型*int64 2 年前 |