1、类 类 是对一群具有 相同 特征 或者 行为 的事物的一个统称,是 抽象 的,不能直接使用 特征 被称为 属性 行为 被称为 方法 类就相当于制造飞机时的图纸,是一个模板,是负责创建的
2、对象 对象 是 由类创建出来的一个 具体 存在,可以直接使用,由哪一个类创建出来的对象,就拥有在哪一个类中定义的: 属性 方法
对象就相当于图纸制造的飞机 在程序开发中,应该先有类,再有对象
这样说大家肯定难以理解,我们接着往下看。
/*************************************************************************
> File Name: test.cpp
> Author:Xiao Yuheng
> Mail:[email protected]
> Created Time: Wed Oct 25 16:32:06 2023
************************************************************************/
#include
using namespace std;
// 定义一个A类
class A{
public:
int __x;
int __y;
int __z;
};
int main() {
// 定义一个a对象
A a;
return 0;
}
在上面这段代码中, 我们先定义了一个class A
类,然后我们又用A
类,创建了一个a
对象,这样大家可能就大概理解了什么是对象和类了,如果还是不理解请接着往下看。
int a
;这段代码相信大家应该都能看懂吧,有没有发现和A a
;这段代码很相识。
在int a
;这段代码中:int
是类型,a
是变量; 在A a
;这段代码中,A
是类,a
是对象;
其实他们描述的意思是一样的,只不过我们现在定义了一个更加复杂数据类型,然后在用这个数据类型创建一个变量,也就是我们所说是对象,有没有发现这个和c语言中的struct
的作用差不多呀,是滴,class
就是struct
的升级版本。在C++
中我们将不在使用struct
,转而使用class
。
我们现在大概了解了什么是类和对象之后,我们再来聊一聊类该怎么定义,以及怎么里面有哪些内容。
类的定义:
/*************************************************************************
> File Name: test.cpp
> Author:Xiao Yuheng
> Mail:[email protected]
> Created Time: Wed Oct 25 16:32:06 2023
************************************************************************/
#include
using namespace std;
/*
类定义的格式
calss 类名 {
}; 分号不要忘了
*/
class A{
};
int main() {
A a;
return 0;
}
类定义的格式就是class 类名 { } ;
可是类里面又有什么东西呢?
/*************************************************************************
> File Name: test.cpp
> Author:Xiao Yuheng
> Mail:[email protected]
> Created Time: Wed Oct 25 16:32:06 2023
************************************************************************/
#include
using namespace std;
class A{
// 成员属性
int __x;
int __y;
int __z;
// 成员方法
int getX() { return __x; }
int getY() { return __y; }
int getZ() { return __z; }
};
int main() {
A a;
return 0;
}
类中大致分为两类:成员属性和成员方法,那什么是成员属性呢?什么是成员方法呢?
成员属性(Member Variables)是指属于类的变量,也称为类的数据成员或成员变量。在这段代码中,class A
包含了三个成员属性:
__x
:这是一个整型变量,用来存储类的一个特定数据。
__y
:同样也是一个整型变量,用来存储另一个特定数据。
__z
:同样是一个整型变量,用来存储另一个特定数据。
总的来说,成员属性是属于类的变量,用来存储类的特定数据,可以在类的方法中进行访问和操作。
成员方法(Member Methods)是类中定义的函数,也叫做类的成员函数或方法。它们用于执行特定的操作或任务。
在这个例子中,类 A
包含了三个成员方法:
int getX() { return __x; }
:这是一个成员方法,它返回一个整数值。它的作用是获取成员属性 __x
的值。
int getY() { return __y; }
:类似地,这也是一个成员方法,返回整数值。它的作用是获取成员属性 __y
的值。
int getZ() { return __z; }
:同样也是一个成员方法,返回整数值。它的作用是获取成员属性 __z
的值。
这些成员方法可以在类的内部访问和操作成员属性,或者在类的外部通过类的实例(对象)来调用。
总的来说,成员方法是属于类的函数,用于执行特定的操作或任务,可以访问类的成员属性并进行处理。
C++中的类中因为安全性的考量,引进了一个新的东西叫做访问权限,什么是访问权限呢?
C++ 中的访问权限是指控制类的成员(属性和方法)对外部世界的可见性和访问级别。我们将在代码中为大家详细解释一下什么是访问权限。
/*************************************************************************
> File Name: test.cpp
> Author:Xiao Yuheng
> Mail:[email protected]
> Created Time: Wed Oct 25 16:32:06 2023
************************************************************************/
#include
using namespace std;
class A{
// 私有访问权限
private:
int __x;
int __y;
int __z;
// 公共访问权限
public:
int getX() { return __x; }
int getY() { return __y; }
int getZ() { return __z; }
};
int main() {
A a;
return 0;
}
在C++中有三中访问权限,分别为:公共访问权限(Public),私有访问权限(Private),受保护访问权限(Protected),下面我们将详细为大家将一下:公共访问权限(Public),私有访问权限(Private)这两种访问权限,至于第三种 受保护访问权限(Protected)访问权限我们将在后面讲解友元的时候为大家讲解,现在大家就先把这个当成 私有访问权限(Private)这个就可以。
私有访问权限(private):
__x
、__y
和 __z
是私有成员变量。它们只能在类的内部使用,对于类的外部和派生类来说是不可见的。 也就是说我们是无法在外部直接访问的如下, 我们在主函数中加上如下一句话:
int main() { A a; a.__x = 10; return 0; }
如果我们直接在主函数中直接访问a.__x
的话,我们编译一下如下:
直接报错,报错内容大概:__x
的权限是私有的。那我们该如何访问呢?我们接着往下看:
公共访问权限(public):
getX()
, getY()
, getZ()
是公共成员函数,它们可以在类的外部被调用。 getX()
返回 __x
的值,getY()
返回 __y
的值,getZ()
返回 __z
的值。
我们可以通过公共访问权限来进行访问,我们把主函数更改为如下这样:
int main() {
A a;
cout << a.getX() << endl;
cout << a.getY() << endl;
cout << a.getZ() << endl;
return 0;
}
我们再次运行一下程序,得到如下结果:
因为我们还没给成员属性初始化,所有输出出来的值为随机值。
总结: 也就是说我们对象直接调用 私有访问权限(private)里面的值和函数,但是可以调用 公共访问权限(Public)里面的值和函数。