C+中的类和对象是什么+;? C++中的类和对象是什么?
我们可以说一个类是一个对象吗?一个对象是一个类的一个实例。不,一个对象是一个类的一个实例。一个类就像一个蓝图,一个对象就像一座根据这个蓝图建造的房子 您可以有许多具有相同布局/楼层平面的房屋(read类),但每个房屋都是它自己的实例(read对象)。每个人都有自己的主人、家具等C+中的类和对象是什么+;? C++中的类和对象是什么?,c++,C++,我们可以说一个类是一个对象吗?一个对象是一个类的一个实例。不,一个对象是一个类的一个实例。一个类就像一个蓝图,一个对象就像一座根据这个蓝图建造的房子 您可以有许多具有相同布局/楼层平面的房屋(read类),但每个房屋都是它自己的实例(read对象)。每个人都有自己的主人、家具等 请注意,还有一些对象的蓝图不是类(例如整数)。这类似于询问猫是否是“我的小猫手套” 对象是一些数据,在运行时内存中有一个地址 有不同类型的对象(例如int、float等)。您可以创建用户定义的类型,称为“类” 例如,我可
请注意,还有一些对象的蓝图不是类(例如整数)。这类似于询问猫是否是“我的小猫手套” 对象是一些数据,在运行时内存中有一个地址 有不同类型的对象(例如int、float等)。您可以创建用户定义的类型,称为“类” 例如,我可以将Dog定义为一个类
class Dog {};
Dog fido;
Dog spot;
。。。然后创建几个对象,每个对象都是该类的一个实例
class Dog {};
Dog fido;
Dog spot;
C++支持许多范例,但不是面向对象编程的“一切都是对象”风格。类存在于源代码中,但在运行时不存在。即使运行时类型信息不保存类作为对象,但只提供了一种与类型对应的不透明ID的能力。C++中的< P>,对象本质上是变量,类是它们的值的类型。 < P>两个类和实例都是对象,但是面向对象的编程并不能强制语言具有类和实例。 < P>简短的回答:在语言C++中,java:不是。
在Python这样的语言中:Yes类:类定义特定类型的行为和属性 对象:对象是类的实例 例如,如果你有一只名叫宾果的狗
- 狗将是定义其行为和属性的类
- Bingo将是一个对象,它是Dog类的一个实例
严格地说,类不是C++中的对象。
但在支持反射的C#和Java等语言中,类可以像对象一样使用,但这是一个更高级的主题,可能不是原始问题所要求的。我将尝试给出更多的技术解释,而不是抽象的解释。我认为“类是一个蓝图,对象是由这个蓝图生成的”这样的定义对于新手来说是不可能理解的,因为这些定义是抽象的,没有上下文 在面向对象的世界中,类和对象具有纯粹的抽象含义,但为了简单起见,我将把定义简化为更实用的定义 考虑以下陈述:
int a;
“int”是一种类型,is“a”是一种类型为“int”的变量
C++提供了多种方式让程序员定义新类型;例如:
typedef int* int_ptr;
int_ptr a;
struct Point
{
int x;
int y;
};
Point a;
class SmartPoint
{
public:
Point(x,y);
Move(x,y);
protected:
int x,y ;
};
SmartPoint a;
在本例中,定义了一个新类型。
“int_ptr”是一种类型,“a”是一种类型为“int_ptr”的变量。
另一个例子:
typedef int* int_ptr;
int_ptr a;
struct Point
{
int x;
int y;
};
Point a;
class SmartPoint
{
public:
Point(x,y);
Move(x,y);
protected:
int x,y ;
};
SmartPoint a;
这里定义了一个新类型,,“Point”,而“a”是一个类型为“Point”的变量
< C++中的类是什么?类是定义新类型的另一种方法,就像上面提到的其他方法一样
什么是物体?对象是一个变量,其类型是使用class关键字定义的
例如:
typedef int* int_ptr;
int_ptr a;
struct Point
{
int x;
int y;
};
Point a;
class SmartPoint
{
public:
Point(x,y);
Move(x,y);
protected:
int x,y ;
};
SmartPoint a;
在本例中,定义了一个新类型,“SmartPoint”,而“a”是一个类型为“SmartPoint”的变量
然后,您可能会问,使用“class”关键字或“struct”关键字或“typedef”定义的类型之间有什么不同,但这是另一个讨论的问题。不,对象是类的实例 除非 如果您正在实现一个允许您表示类、接口、属性、继承、关联、聚合等的软件设计工具,那么在运行时,是的,您放置在设计器中的每个类都将是该类的对象实例。好吧,我忍不住发现了一个如此扭曲的例子
说真的,类不是对象。类不是对象 在更简单的C语言中,类类似于
结构
类型,但更复杂。
使用Cstruct
示例作为类比:
struct class_ {
int attribute00;
float attribute02;
...
}
struct class_ object_ = {0, 0.0, ...};
结构类
的行为类似于类
,对象
的行为类似于对象
。
结构类
在内存中没有物理存储,对象
在内存中有物理存储
在人类语言中,一个词“house”(作为类
)可以在字典中定义为居住的地方,有门,有窗,有房间,你只能用嘴来告诉别人什么是房子。实体房屋(如对象
)是一种坚固的房屋,位于一块你可以搬进去和家人住在一起的土地上
“房子”一词不表示实际占用土地或空间。
物理房屋占用土地和空间。
类是数据成员和成员函数的集合
Class
是用户定义的数据类型
对象
是类类型变量
对象也称为类的实例
每个对象包含类中声明的所有成员(变量和函数)。我们可以使用
操作符从该类的对象访问任何数据成员或成员函数 定义类时,定义数据类型的蓝图。这实际上并不定义任何数据,但它定义了类名的含义,即类的对象将由什么组成,以及可以对此类对象执行什么操作
类定义以关键字class开头,后跟类名;和类主体,由一对花括号包围。阶级定义