帮助我正确解释为什么文字不是C ++中的对象。
我的解释是:“严格来说,我们不能认为文字是对象。文字是不包括字符串文字的prvalues。通常prvalues是与任何对象无关的值!”
这个解释与C ++标准一致(另见here)。也许有另一种解释?
答案 0 :(得分:0)
文字是一个声明性的对象,但是我认为你可能会对基元和对象的区别感到困惑。基元是对象,可以很容易地将它们视为对象,但由于存在符号和缺少成员,因此可以很容易地看出为什么它们可以被视为不是对象。因此很容易理解为什么可以认为文字不是对象,因为文字通常定义基元(很少有复杂的数据结构很容易在文字中定义)。
但是,基元是一个对象(没有将它们定义为对象的有用理由),因为它是一个类型的成员。因此,因为它只是一个对象的静态定义,所以它们也是一个对象,我们只是不以与其他对象相同的方式与它们交互,因为它们是静态的。
虽然文字不是对象的想法可能不会在代码中引起任何问题但它会使OOP更复杂,特别是因为OOP的想法是我们应该在编程中与对象进行交互,因为这就是我们如何与一切进行交互编程之外。