【问题标题】:Meaning of "Instances of types are called objects"“类型的实例称为对象”的含义
【发布时间】:2020-12-19 15:05:33
【问题描述】:

我正在看书Modern C++ for Absolute Beginners by Slobodan Dmitrović类型一章中有以下语句:

每个实体都有一个类型。什么是类型?类型是一组可能的值和操作。 类型的实例称为对象。

所以 bool, char, int, ... 都是类型的。

他所说的“类型的实例称为对象”是什么意思。 ?例如,int 的实例是什么?

【问题讨论】:

  • 5 是 int 的一个实例。 int i;
  • @user253751 从技术上讲,5'5' 不是对象,它们是文字。 5 没有生命周期或存储持续时间,这是对象具有的属性。
  • 对象的定义 - en.cppreference.com/w/cpp/language/object 请注意,对象的 C++ 定义与人们通常在 OOP 意义上引用对象时的含义不同。
  • 这个问题很有趣,可以带你深入哲学的兔子洞——计算机程序中的一段数据成为意味着什么? (正如 Fred Brooks 所说,“程序员就像诗人一样,只是稍微远离纯粹的思想。”)

标签: c++


【解决方案1】:

用简单的语言说:Instances of types are called objects 这意味着,当您定义了原型或蓝图并且想要使用该蓝图时,您需要声明该类型的对象。

你有不同的类型。

  1. 原始数据类型,如 int、long、char、short 等
  2. 用户定义的数据类型,如类、结构等
  3. 函数数组指针等派生数据类型

要使用任何数据类型,您需要拥有该类型的对象。

例如:原始数据类型,你有int i; 当您以这种方式声明时,您的意思是您需要一个 4 字节内存的变量/对象。 所以这里i 是你的对象。所以你不能在没有类型的情况下使用对象i。 同样,您可能需要针对不同类型的不同对象。

对于非原始类型也适用相同的逻辑。

假设你有一个类如下:

class Student {
public:
    int rollNum;
    String name;

}

这是你的蓝图,你的类型。当您需要使用类变量时,您需要为您的类型创建一个对象。如下:

Student s;

您将能够访问变量并根据您的意愿为其赋值。

s.rollNum = 10;
s.name = "Martin";

所以你的对象是:s 这是Student 的一种

更多来自a blog post on "Class vs Object vs Instance"

简而言之,对象是相关状态的软件包,并且 行为。类是对象的蓝图或原型 创建的。实例是类的一个唯一的单元。

对象 现实世界的对象有两个主要特征,状态和行为。人类有状态(姓名、年龄)和行为(跑步、 睡眠)。汽车有状态(当前速度,当前档位)和状态 (应用刹车,换档)。软件对象在概念上是 类似于现实世界的对象:它们也由状态和相关的 行为。对象将其状态存储在字段中并公开其状态 通过方法的行为。

类是用于创建对象的“模板”/“蓝图”。基本上,一个类将由字段、静态字段、 方法、静态方法和构造函数。字段用于保存状态 类的名称(例如:学生对象的名称)。方法用于表示 类的行为(例如:学生对象如何 起来)。构造函数用于创建类的新实例。

实例 实例是代表对象的类的唯一副本。当创建一个类的新实例时,编译器或 JVM(用于 java)将为该类实例分配一个内存空间。

【讨论】:

  • 您是否从此处复制了一半的答案:codegym.cc/help/1148?相似之处太可疑了,说实话我怀疑另一半是从别处抄来的……
  • @idclev463035818 不。我已经更新了我输入的答案......除了定义都是我写的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多