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

15 c++

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

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

Cod*_*ile 49

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

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

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

  • 哦肯定.您可以将继承视为在家中添加附加物,或添加车库或其他类似物质. (4认同)
  • +1好的比喻.我认为当你考虑继承和多态这样的事情时它甚至可以工作. (3认同)

Wil*_*del 17

对象是类的实例.

  • 不仅在C++中,大多数(如果不是全部)OO语言也是如此. (2认同)
  • Class是Java中的一个对象. (2认同)

Chr*_*isW 6

对象是一些数据,其在运行时内存中具有地址.

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

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

class Dog {};
Run Code Online (Sandbox Code Playgroud)

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

Dog fido;
Dog spot;
Run Code Online (Sandbox Code Playgroud)


use*_*637 6

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

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

请考虑以下声明:

int a;
Run Code Online (Sandbox Code Playgroud)

"int"是一个类型,"a"是一个类型为"int"的变量.

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

typedef int* int_ptr;
int_ptr a;
Run Code Online (Sandbox Code Playgroud)

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

struct Point
{   
    int x;
    int y;
};
Point a;
Run Code Online (Sandbox Code Playgroud)

这里,定义了一个新类型,"Point","a"是一个具有"Point"类型的变量.

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

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

例如:

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

SmartPoint a;
Run Code Online (Sandbox Code Playgroud)

在此示例中,定义了新类型 "SmartPoint","a"是具有"SmartPoint"类型的变量.

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