【问题标题】:Attributes of a Variable in C++C++中变量的属性
【发布时间】:2018-02-07 05:11:05
【问题描述】:

我在我的高级 C++ 课程中参加了一次测验,当我从以下问题中得到分数时,我感到很惊讶:

在 C++ 中指定变量的四个属性。

我的答案:大小、类型、类别、公共

接受大小和类型,但不接受 class 和 public。我的理解是类的实例是实例化变量的属性。并且在定义一个类时,成员变量可以是该类的公共或私有属性。

我问了我的助教和教授,他们声称我错了,因为实例变量与 int、double、char 等数据类型变量不同。

所以我的问题归结为:类的实例与原始类型变量的行为相同吗?为什么或者为什么不?

【问题讨论】:

  • 类型和类是一回事。 (或者,更确切地说,所有的类也是类型;并非所有的类型都是类。)但是在普通英语中,类型和类具有等价的含义。
  • 并非 C++ 中的所有内容都必须属于类类型,因此诸如公共访问之类的东西可能适用也可能不适用。
  • @NeilButterworth 已注明,已更正。
  • 参见here 了解类与类型。类类型是众多类型中的一种。 public 只对成员变量有意义。

标签: c++ class attributes


【解决方案1】:

你的导师说得有些正确。

  • 类型是“[o]对象、引用、函数(包括函数模板特化和表达式)”的属性 (Source)
  • 类引用“用户定义类型”(Source)

您的导师可能正在寻找:

  1. 尺寸
  2. 类型
  3. 姓名
  4. 价值

还有其他属性,例如 Address 和 Linkage,但您的教授不太可能指的是这些属性。

我的理解是一个类的实例是实例化变量的一个属性

不,它(类)是变量的类型(它是一个属性,如上所述)

并且在定义一个类时,成员变量可以是该类的公共或私有属性。

可见性仅适用于一小部分变量,对于成员变量,它们也可以在类中标记为protected

类的实例与原始类型变量的行为相同吗?为什么或为什么不?

我不明白你所说的“行为”是什么意思。如果你的意思是,它们是否可以被分配,它们是否可以传递给函数,它们是否使用相似的语法,那么是的。如果您指的是操作、它们的成员、它们的规模,那么没有。

【讨论】:

  • 类和类型不是一回事。见这里:en.cppreference.com/w/cpp/language/type
  • @user463035818 现在好点了吗?
  • 抱歉,您错误地引用了 cppref 使情况变得更糟。您写“类型指的是“[o] 对象、引用、函数,包括函数模板特化和表达式””,而正确的引用是“对象、引用、函数包括函数模板特化和表达式具有称为类型的属性,.. ." 那是另一种说法。
  • @user463035818 没关系,但我现在正确吗?
  • 更好,是的。需要更多的信件,所以我只是对讲师发表另一个愚蠢的评论......在你添加“有点”之前,我实际上仍在考虑否决;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 2010-12-05
  • 2012-07-13
  • 2012-02-02
  • 1970-01-01
相关资源
最近更新 更多