gpt4 book ai didi

c++ - C++ 中的类为什么不是对象?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:26 25 4
gpt4 key购买 nike

我正在阅读“Design Patterns: Elements of Reusable Object-Oriented Software”,(特别是关于原型(prototype)设计模式的章节)它说......

"Prototype is particularly useful with static languages like C++ where classes are not objects, and little or no type information is available at run-time." (pg 121)

(强调我的)

我一直认为类是对象的同义词,我对这句话的含义感到困惑。为什么类不是对象,为什么语言是静态的很重要?

最佳答案

C++ 中的类不是对象:类是对如何构建对象的描述,以及对对象类型的引用。

与 Python 这样的语言比较:在 Python 中,就像在 C++ 中一样,您从一个类中实例化一个对象。与 C++ 不同,您使用的类也是一个对象:它通常具有 type 类型,您可以在运行时创建新的类,像操作任何其他对象一样操作它们,甚至创建本身是类的对象有不同的类型。

您可能想知道为什么需要它,而通常您并不需要它——这就像 C++ 模板元编程,只有在您需要时才需要它,因为您可以以任何其他方式实现您的目标。您在 Python 中使用元类解决的问题可能也是您在 C++ 中使用模板元编程解决的问题。

关于c++ - C++ 中的类为什么不是对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11265604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com