Cod*_*ile 49
一个类就像一个蓝图,一个对象就像一个由该蓝图构建的房子.
您可以拥有许多具有相同布局/布局规划(读取类)的房屋,但每个房屋都是自己的实例(读取对象).每个人都有自己的主人,家具等.
请注意,还有一些对象的蓝图不是类(例如整数).
对象是一些数据,其在运行时内存中具有地址.
有不同类型的对象(例如int,float等).您可以创建用户定义的类型,称为"类".
例如,我可以将Dog定义为一个类......
class Dog {};
Run Code Online (Sandbox Code Playgroud)
...然后创建几个对象,每个对象都是该类的一个实例......
Dog fido;
Dog spot;
Run Code Online (Sandbox Code Playgroud)
我会尝试提供更多的技术解释而不是抽象的解释.我认为像"一个类是蓝图,一个对象是由这个蓝图制成的东西"这样的定义对于新手是不可能理解的,因为这些定义是抽象的,没有上下文.
类和对象在面向对象的世界中具有纯粹的抽象意义,但为了简单起见,我将把定义简化为更实用的定义.
请考虑以下声明:
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"定义的类型之间有什么不同 - 但这是另一个讨论的问题.
| 归档时间: |
|
| 查看次数: |
61578 次 |
| 最近记录: |