类是可以封装数据和函数的高级结构体。
C++ 是一门面向对象的编程语言,理解 C++,首先要理解类(Class)和对象(Object)这两个概念。
C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体来定义结构体变量,每个变量拥有相同的性质。例如:
#include <stdio.h>//定义结构体 Studentstruct Student{
//结构体包含的成员变量 char *name; int age; float score; }; //显示结构体的成员变量 void display(struct Student stu){ printf("%s的年龄是 %d,成绩是 %f ", stu.name, stu.age, stu.score); } int main(){ struct Student stu1; //为结构体的成员变量赋值 stu1.name = "小明"; stu1.age = 15; stu1.score = 92.5; //调用函数 display(stu1); return 0; }
运行结果:
小明的年龄是 15,成绩是 92.500000
C++ 中的类也是一种构造类型,但是进行了一些扩展,类的成员不但可以是变量,还可以是函数;通过类定义出来的变量也有特定的称呼,叫做“对象”。
C语言中的 struct 只能包含变量,而 C++ 中的 class 除了可以包含变量,还可以包含函数。
display() 是用来处理成员变量的函数,在C语言中,我们将它放在了 struct Student 外面,它和成员变量是分离的;
而在 C++ 中,我们将它放在了 class Student 内部,使它和成员变量聚集在一起,看起来更像一个整体。
有些资料也将类的成员变量称为属性(Property),将类的成员函数称为方法(Method)。
面向对象编程(Object Oriented Programming,OOP)
类是一个通用的概念,C++、Java、C#、PHP 等很多编程语言中都支持类,都可以通过类创建对象。
可以将类看做是结构体的升级版,C语言的晚辈们看到了C语言的不足,尝试加以改善,继承了结构体的思想,并进行了升级,让程序员在开发或扩展大中型项目时更加容易。
不要小看类(Class)这一层封装,它有很多特性,极大地方便了中大型程序的开发,它让 C++ 成为面向对象的语言。
面向对象编程在代码执行效率上绝对没有任何优势,它的主要目的是方便程序员组织和管理代码,快速梳理编程思路,带来编程思想上的革新。
面向对象编程是针对开发中大规模的程序而提出来的,目的是提高软件开发的效率。
不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。
如果你希望开发一个贪吃蛇游戏,类和对象或许是多余的,几个函数就可以搞定;但如果开发一款大型游戏,那你绝对离不开面向对象。
---------------------------------以上摘自C语言中文网----------------------------------------------------