C++中的类Class可以看作C语言中结构体的升级版。结构体是一种构造类型,它可以包含若干成员变量,而其中每个成员变量的类型又可以不同。例如:
struct Student
{//结构体包含的成员变量
char *name;
int age;
float score;
};
void Display(struct Student stu)
{
printf("%s的年龄是%d,成绩是%.2f\n",stu.name,stu.age,stu.score);
}
int main()
{
struct Student stu1;
stu1.name = "小明";
stu1.age = 18;
stu1.score = 68.9;
Display(stu1);
return 0;
}
打印出来是: 小明的年龄是18,成绩是68.90
C++中的类也是一种构造函数,但在其基础上有所扩展,比如:类的对象不但可以是变量,还可以是函数。通过类定义出来的变量被称为“对象”。例如:
//通过class关键字定义 类
class Student
{
public:
//类包含的变量
char *name;
int age;
float score;
//类包含的函数
void Display()
{
printf("%s的年龄是%d,成绩是%.2f\n",name,age,score);
}
};
int main()
{//通过类来定义变量,即创建对象
class Student stu1;//可以忽略关键字class
//为变量赋值
stu1.name = "小明";
stu1.age = 18;
stu1.score = 68.9;
//调用类的成员函数
stu1.Display();//和上一个在调用时有所区别
return 0;
}
运行结果同上。
结构体和类都可以看作是用户自定义的一种复杂数据类型,其中C语言中(如第一段代码所呈现,我们将Display()写到struct Student外面)的结构体struct只能包含变量,结构体定义出来的变量叫“变量” ; C++中(如第二段代码所呈现,我们将Display()写到了class Student里面,像一个完整的整体)的类class不仅可以包含变量,还可以包含函数Display(),类定义出来的变量被称为“对象”(Object)
在通过class关键字定义完类Student后,又通过Student类创建了一个对象stu1。变量和函数都是类的成员,创建对象后可以通过“.”来访问。
有些资料还将类的成员变量称为 属性 , 将类的成员函数成为 方法。