我在区分类、对象、变量和数据类型等术语时遇到了一些麻烦。
类可以被认为是一种数据类型吗?一个对象可以被视为一个变量吗?
另外,技术上的区别是什么?
发布于 2011-10-18 18:25:01
这些术语有两种不同的用法:
- Class: Abstract data type with methods and fields.
- Object: Instance of a class.
- Variable: Language-level name (i.e: name given by a programmer) for some piece of storage.
- Datatype: Type that a variable (or some unnamed piece of storage) can have.
- Object: Some piece of storage, whether it has a name or not.
- Object of Class Type: Some piece of storage whose datatype is class(=struct).
发布于 2011-10-18 18:08:42
变量是具有直接名称的对象。
int i;
I是一个变量,也是一个对象。
int* p = new int;
*p是对象,但不是变量。
类和类型几乎相同,除了类型包括像int这样的原始类型。实际上,它们是可互换的--以及变量/对象。C++标准的实际情况是,很少有规则以不同的方式应用于类和类型,以及变量和对象。
发布于 2011-10-18 18:10:30
一个类可以看作是一组限定了作用域的函数和私有变量。对象是一个类的实例,例如,toyata可以是一个名为Car的类的对象实例。变量是一个标识符。它表示值和状态可以随时间变化的标识符。数据类型表示数据类型。
例如,假设Car是一个类。然后声明:
Car toyata;
具有类、数据类型、标识符(变量)和对象。
https://stackoverflow.com/questions/7811687
复制