文字不是对象

Literals are not objects?

本文关键字:对象 文字      更新时间:2023-10-16

帮助我正确解释了为什么字面意思不是C 中的对象。

我的解释是:"严格来说,我们不能认为文字是对象。文字是不包括字符串文字的prvalues。通常是与任何对象无关的值!"

这种解释与C Standart一致(另请参见此处)。也许还有另一个解释?

文字是一个声明的对象,但是我认为也许您会挂在原始和对象的区别上。原语是对象,可以轻松地将它们视为对象,但是由于那里的符号和缺乏成员,很容易看出为什么可以将它们视为不是对象的。因此,很容易看出为什么可以认为字面意思不是对象,因为文字通常定义原始图(很少有复杂的数据结构在文字中很容易定义)。

但是,原始性是一个对象(没有将它们定义为对象的对象),因为它是类型的成员。因此,由于只是一个对象的静态定义,它们也是一个对象,我们只是与其他对象一样,因为它们是静态的。

虽然字面意义不是对象的想法可能不会引起代码中的任何问题,但它会使OOP变得更加复杂,尤其是因为OOP的想法是我们应该与编程中的对象进行交互,因为这就是我们与所有事物的交互方式在编程之外。