这句话是什么意思,可以通过赋值运算符执行某些用户定义类的实例的隐式转换(除了非显式构造函数和转换运算符)?这里隐含什么?那些。我们a = b在a它有 typeA和b其他 type的地方B写,而我们显式地写 sign =,从而表明调用了这样和这样的运算符,它将把这个写到b我们的实例中。使用非显式的 k-s,一切都很清楚:我们void f(A)以形式调用某个函数f(b)- 很明显,某些 k-r 被隐式调用,我们不写任何额外的字符。问题来自这里,请参阅类的隐式转换。
C 和 C++ 语言都有显式类型转换的概念:显式类型转换是在用户显式使用的强制转换运算符的帮助下进行的转换——“强制转换”。C++ 中的显式类型转换示例
没有显式强制转换的类型转换称为隐式。
内联赋值行为本身不能进行任何类型转换。要将值存储在
a类型对象中,A该值本身必须是 typeA。没有选项。如果赋值中左右部分的类型不匹配,首先将右边值的类型隐式转换为左边部分的类型,然后才进行实际的赋值。没有人禁止您定义自定义赋值运算符,它的右侧将具有任何类型。可以非正式地说,这样的赋值运算符执行类型转换。但是在没有强制转换的情况下,这种转换也将被称为隐式。
如果您从“这里隐含什么?”的角度来看,那么在 C 和 C++ 程序中,几乎所有内容都必须被称为“显式”,因为所有内容都应该对细心的眼睛“明显可见”。但是 C 和 C++ 语言的术语并没有从这个角度来处理这个问题。