物联网/嵌入式工程师
重磅升级:新增硬件电路设计与实战,让你软硬通吃,同级PK无敌!行业风口、政策倾斜,新晋热门高薪不内卷!0基础一站式就业完整路径,抢占先发优势!
我们上一小节中介绍了面向对象的思想,这一小节开始,我们来具体看看在 C++ 中应该如何实现面向对象。
类,是 C++ 实现面向对象最基础的部分。类其实和之前学过的结构体十分相似,你可以认为类是结构体的升级版。之后的学习中你会更加理解类。现在,我们只简单的来介绍一下类。
在 C++ 中,可以用下面的代码申明一个员工类:
class Staff { };
可以像使用结构体一样使用这个类:
#include <stdio.h> class Staff { }; int main(int argc,char **argv) { Staff st; return 0; }
我们在此之前都是把代码放到一个文件里,但是这样在实际工程中肯定是不行的,我们不可能把所有的代码都写到一个文件夹里面。而在 C++ 中我们就常常把类定义到不同的文件里面,把每个类都独立起来,这样代码的耦合性就会降低,方便维护。
在 C++ 中,我们可以把一个类写到两个文件里面,一个是后缀为 .h 或者 .hpp 的头文件,一个是后缀为 .cpp 的实现文件。我们先在开发环境里新建一个类。输入类名是 Staff。
可以看到 VS 为我们创建类两个文件,Staff.h 和 Staff.cpp。Staff.h 文件为定义,Staff.cpp 为实现。
在分了文件之后,我们想要在 main 函数中引用这个类,就需要使用 #include “Staff.h” 将头文件引入进来。
在新建了一个类之后,我们就可以根据这个类产生对象了。根据类产生对象的过程叫做实例化。这个过程就像是公司招聘员工一样,幸运的是,我们作为程序的老板,并不需要和现实中一样去张贴招聘启示。在 C++ 中,“招聘“员工,只需要用以下的代码就可以了。
#include "Staff.h" int main(int argc,char **argv) { // 我们就这样实例化了三个员工 Staff st1; Staff st2; Staff st3; return 0; }
这样分配,我们将这三个“员工”分配到了栈上,同样的,可以把他们分配到堆内存上面去。
要将对象分配到堆上,需要用到另外两个关键字,new 和 delete。new 用来分配对象,delete 用来删除对象。new 会返回一个指针,在使用完毕后,要通过 delete 把这个指针指向的地址释放掉。
#include "Staff.h" int main(int argc,char **argv) { // 我们就这样实例化了三个员工 Staff * st1 = new Staff(); Staff * st2 = new Staff(); Staff * st3 = new Staff(); // 记得释放 delete st1; delete st2; delete st3; return 0; }
当然,我们现在这个类还什么都不能干呢,接下来的课程中,我们将逐步介绍类的功能。
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报