C++是一门面向对象的编程语言,理解C++,首先要理解类与对象这两个概念。
C++中的类可以看做C语言中结构体(Struct)的升级版。结构体是一种构造数据类型,可以包含若干成员(变量),每个成员的数据类型可以不一样;可以通过结构体来定义结构体变量,每个变量拥有相同的性质。例如:
运行结果:
小明的年龄是 15,成绩是 92.500000
C++中的类也是一种构造数据类型,但是进行了一些扩展,类的成员不但可以是变量,还可以是函数;通过类定义出来的变量也有特定的称呼,叫做“对象”。例如:
运行结果与上例相同。
class 是C++中的关键字,用来声明一个类。public 也是一个关键字,表示后面的成员都是公有的;所谓公有,就是通过当前类创建的对象都可以访问这些成员。除了 public 还有 private,它表示私有的,也就是对象都不能访问这些成员。我们在会面会详细讲解。
在C语言中,通过结构体名完成结构体变量的定义;在C++中,通过类名完成对象的定义。结构体变量和对象被定义后会立即分配内存空间。
可以将类比喻成图纸,对象比喻成零件,图纸说明了零件的参数及其承担的任务;一张图纸可以生产出具有相同性质的零件,不同图纸可以生产不同类型的零件。
在C++中,通过类名就可以创建对象,即将图纸生产成零件,这个过程叫做类的实例化,因此也称对象是类的一个实例。
C++中的类可以看做C语言中结构体(Struct)的升级版。结构体是一种构造数据类型,可以包含若干成员(变量),每个成员的数据类型可以不一样;可以通过结构体来定义结构体变量,每个变量拥有相同的性质。例如:
- #include <stdio.h>
- int main(){
- // 定义结构体 Student
- struct Student{
- // 结构体包含的变量
- char *name;
- int age;
- float score;
- };
- // 通过结构体来定义变量
- struct Student stu1;
- // 操作结构体的成员
- stu1.name = "小明";
- stu1.age = 15;
- stu1.score = 92.5;
- printf("%s的年龄是 %d,成绩是 %f\n", stu1.name, stu1.age, stu1.score);
- return 0;
- }
小明的年龄是 15,成绩是 92.500000
C++中的类也是一种构造数据类型,但是进行了一些扩展,类的成员不但可以是变量,还可以是函数;通过类定义出来的变量也有特定的称呼,叫做“对象”。例如:
- #include <stdio.h>
- int main(){
- //通过class关键字类定义类
- class Student{
- public: //类包含的变量
- char *name;
- int age;
- float score;
-
- public: //类包含的函数
- void say(){
- printf("%s的年龄是 %d,成绩是 %f\n", name, age, score);
- }
- };
- //通过类来定义变量,即创建对象
- class Student stu1; //也可以省略关键字class
- //操作类的成员
- stu1.name = "小明";
- stu1.age = 15;
- stu1.score = 92.5f;
- stu1.say();
- return 0;
- }
class 是C++中的关键字,用来声明一个类。public 也是一个关键字,表示后面的成员都是公有的;所谓公有,就是通过当前类创建的对象都可以访问这些成员。除了 public 还有 private,它表示私有的,也就是对象都不能访问这些成员。我们在会面会详细讲解。
在C语言中,通过结构体名完成结构体变量的定义;在C++中,通过类名完成对象的定义。结构体变量和对象被定义后会立即分配内存空间。
可以将类比喻成图纸,对象比喻成零件,图纸说明了零件的参数及其承担的任务;一张图纸可以生产出具有相同性质的零件,不同图纸可以生产不同类型的零件。
在C++中,通过类名就可以创建对象,即将图纸生产成零件,这个过程叫做类的实例化,因此也称对象是类的一个实例。