c++ - 语句 "a class is an object even if not instantiated"是什么意思?

标签 c++ ruby class

我是一名学习 Ruby 的 C++ 程序员。在一本初学者书中,我读到:

“一个类本身就是一个对象,即使您不直接实例化它也是如此。”

我不知道怎么解释。

最佳答案

在 C++ 中,除了 typeid 等,类没有语言可见的运行时表示。你可以说 class Foo {};,但你不能说 &Foo。 (您可以获取 typeinfo 对象的 typeid/地址,它是类对象的 SCSS 版本)。

在 Ruby 中,类是对象。任何你能用一个对象做的事情,你都可以用一个类来做,因为它是一个对象。例如,在 Ruby 中,您可以foo.send(...) 到任何对象 foo。由于类是一个对象,因此您也可以使用 Foo.send(...)

关于“你没有实例化它”的部分指的是这样一个事实,即通常你在 Ruby 中说 foo = Foo.new 但你不需要对类这么说。类对象由运行时创建。 (实际上,Ruby 中的 class Foo; endFoo = Class.new 非常相似。)

关于c++ - 语句 "a class is an object even if not instantiated"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404042/

相关文章:

c++ - 在另一个全局仿函数中引用全局仿函数

ruby-on-rails - allocate_attributes 和 ActiveModel::ForbiddenAttributesError

ruby - 在初始化方法中自定义 ArgumentError 消息

C++成员函数调用

c++ - 运算符重载使用operator +作为类模板

c++ - 打印出指向 char 数组第一个索引的指针的值

C++ Qt 如何在滚动区域添加小部件?

c++ - Json::Value 返回时会发生变化吗?

ruby - 套接字不支持该操作- ruby 中的sendto(2)

ruby - 用于抓取城市、州、 zip 的正则表达式