什么是C ++中的类和对象?

时间:2009-07-07 18:25:08

标签: c++

C ++中的类和对象是什么?

我们可以说Class是一个对象吗?

21 个答案:

答案 0 :(得分:48)

一个类就像一个蓝图,一个对象就像一个由该蓝图构建的房子。

您可以拥有许多具有相同布局/布局规划(读取类)的房屋,但每个房屋都是自己的实例(读取对象)。每个人都有自己的主人,家具等。

请注意,还有一些对象的蓝图不是类(例如整数)。

答案 1 :(得分:17)

对象是类的实例。

答案 2 :(得分:6)

我会尝试提供更多的技术解释而不是抽象的解释。我认为像“一个类是蓝图,一个对象是由这个蓝图制成的东西”这样的定义对新手来说是不可能理解的,因为这些定义是抽象的,没有上下文。

类和对象在面向对象的世界中具有纯粹的抽象意义,但为了简单起见,我将把定义简化为更实用的定义。

请考虑以下声明:

int a;

“int”是一种类型,“a”是一个类型为“int”的变量。

C ++提供了各种方法让程序员定义新类型;例如:

typedef int* int_ptr;
int_ptr a;

在此示例中,定义了新类型 int_ptr。 “int_ptr”是一个类型,“a”是一个类型为“int_ptr”的变量。 另一个例子:

struct Point
{   
    int x;
    int y;
};
Point a;

此处,定义了新类型,“Point”和“a”是具有“Point”类型的变量。

那么C ++中的类是什么?类是另一种定义新类型的方法,就像上面提到的其他方法一样。

什么是对象?对象是一个变量,其类型使用class关键字定义。

例如:

class SmartPoint
{
public:
   Point(x,y);
   Move(x,y);
protected:
   int x,y ;
};

SmartPoint a;

在此示例中,定义了新类型,“SmartPoint”和“a”是具有“SmartPoint”类型的变量。

您可能会问,使用“class”关键字或“struct”关键字或“typedef”定义的类型之间有什么不同 - 但这是另一个讨论的问题。

答案 3 :(得分:6)

对象是一些数据,它在运行时内存中有一个地址。

有不同类型的对象(例如int,float等)。您可以创建用户定义的类型,称为“类”。

例如,我可以将Dog定义为一个类......

class Dog {};

...然后创建几个对象,每个对象都是该类的一个实例......

Dog fido;
Dog spot;

答案 4 :(得分:3)

不,对象是类的实例。

答案 5 :(得分:2)

不,对象是类的实例......

除非......

如果您正在实现一个允许您表示类,接口,属性,继承,关联,聚合等的软件设计工具,那么在运行时,是的,您放置在设计器中的每个类都将是一个对象实例班级。好吧,无法帮助自己找到一个如此扭曲和元化的例子。

现在认真地说,一个班级不是一个对象。

答案 6 :(得分:1)

Class是数据成员和成员函数的集合。

Class是用户定义数据类型。

Object是一个类类型变量。

对象也称为类的实例。

每个对象包含类中声明的所有成员(变量和函数)。我们可以使用.运算符从该类的对象访问任何数据成员或成员函数。

答案 7 :(得分:1)

这是一个神学 我们有一个名为车辆的分类。每辆车都有一些属性,如:

  • 座位数
  • 燃料容量
  • 油耗
  • 传输类型

汽车,自行车,卡车,是车辆的一些例子。每个都可能有不同的属性集 这里车辆是一个类,所有属性都是它的成员,汽车,自行车,卡车是班级车辆的对象。

答案 8 :(得分:1)

不,上课不是一个对象。

类是数据类型,对象是类数据类型的变量(实例)。

答案 9 :(得分:0)

C ++支持许多范例,但不支持面向对象编程的“一切都是对象”的范式。类存在于源代码中,但在运行时不存在。即使运行时类型信息也不会将Classes保留为对象,但只提供获取与该类型对应的不透明ID的功能。

答案 10 :(得分:0)

:类定义特定类型的行为和属性。

对象:对象是类的实例。

例如,如果您的 Dog 名为 Bingo

  • Dog 将是定义其行为和属性的

  • Bingo 将是对象,它是 Dog 类的实例

严格地说,Class不是C ++中的Object。 但是在支持反射的C#和Java等语言中,类可以像对象一样使用,但这是一个更高级的主题,并且可能不是原始问题所要求的。

答案 11 :(得分:0)

一个类不是一个对象。

在更简单的C语言中,类类似于struct类型,但更复杂。 使用C struct示例作为类比:

struct class_ {
    int attribute00;
    float attribute02;
    ...
}

struct class_ object_ = {0, 0.0, ...};

struct class_的行为类似于classobject_的行为类似于objectstruct class_内存中没有物理存储,object_内存中有物理存储。

在人类语言中,单词'house'(如class)可以在字典中定义为停留的地方,门,窗户和房间,您只能与之交谈你的嘴告诉别人什么是房子。实体房屋(如object)是一块坚固的建筑房屋,您可以搬进来并与您的家人住在一起。

“房子”一词不占用土地或空间。 实体房屋占用土地和空间。

答案 12 :(得分:0)

类是数据和函数的集合,它是用户定义的数据类型。类是对象的规范。所以你可以说对象是类的变量或对象是类的实例。

答案 13 :(得分:0)

类是逻辑构造,而object是其物理副本。

一个类可以被认为是一个模具,从中创建了多个对象,它们与类

相同

对象可以被认为是类的副本。 继承原则的完美范例。

一个类可以被认为是它的子类的父对象 - 对象

答案 14 :(得分:0)

对象是在运行时内存中具有地址的数据或函数,也称为类的实例。 因此object是c ++编程语言的类类型变量或实体。

答案 15 :(得分:-1)

在C ++中,对象本质上是变量,而类是它们的值的类型。

答案 16 :(得分:-1)

简答:在语言C ++中,Java:不。 在像Python这样的语言中:是的

答案 17 :(得分:-1)

这类似于询问猫是否是“我的小猫手套”。

答案 18 :(得分:-1)

定义类时,可以为数据类型定义蓝图。这并没有实际定义任何数据,但它确实定义了类名的含义,即类的对象将包含什么以及可以对这样的对象执行什么操作。

类定义以关键字class开头,后跟类名;和一个由一对花括号括起来的类体。类定义必须遵循分号或声明列表。例如,我们使用关键字class定义Box数据类型,如下所示:

class Box
{
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};

关键字public确定其后面的类成员的访问属性。可以在类对象范围内的任何位置从类外部访问公共成员。您还可以将类的成员指定为私有或受保护,我们将在子节中讨论。

答案 19 :(得分:-1)

类是用户定义的蓝图或原型,从中创建对象。它表示一种类型的所有对象共有的一组属性或方法。 示例:

class Person {
//..properties
//..methods
}

Object 是类的实例或从类创建。 示例:

 Person John = new Person(); //Creating an object of Person class
    John.property1 = value;     //setting value of property1 for John which is of Person 
                               //Type

答案 20 :(得分:-2)

类和实例都是对象,但面向对象的编程并不强制语言具有类和对象。实例

相关问题