- C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体来定义结构体变量,每个变量拥有相同的性质
- C++ 中的类也是一种构造类型,但是进行了一些扩展,类的成员不但可以是变量,还可以是函数;通过类定义出来的变量也有特定的称呼,叫做“对象”。[例1] [例2]
- C语言中的 struct 只能包含变量,而 C++ 中的 class 除了可以包含变量,还可以包含函数。display() 是用来处理成员变量的函数,在C语言中,我们将它放在了 struct Student 外面,它和成员变量是分离的;而在 C++ 中,我们将它放在了 class Student 内部,使它和成员变量聚集在一起,看起来更像一个整体。
- 类的创建:
class <name>{ <Access specifiers>://访问修饰符(public/private/protected) <body> //主体 }; //分号结束
- 类的使用:创建对象后,可以直接用『.』连接使用(注意:当对象为一个指针时,需要使用『->』访问)
- 定义对象:
class_name name ;
- 成员函数定义:类内定义:
class Box { public: double length; // 长度 double breadth; // 宽度 double height; // 高度 double getVolume(void) { return length * breadth * height; } };
外部定义:
class Box { public: double length; // 长度 double breadth; // 宽度 double height; // 高度 double getVolume(void);//函数声明 }; double Box::getVolume(void){//范围解析:: return length * breadth * height; }
-
访问修饰符:
Public: 共有成员-可以在任何时候被调用
Private : 私有成员-在类外部不可查看、调用,只有类本身及友元函数可访问[余2]
Protected: 受保护成员-与私有成员相似,但受保护成员可以在原类的派生类(子
类)中被调用[余3]
访问修饰符的继承 继承方式 \ 原访问防式 public private protected public继承 public private protected private继承 private private private protected继承 protected private protected
[例1]//例
#include <stdio.h>
//通过class关键字类定义类
class Student{
public:
//类包含的变量
char *name;
int age;
float score;
//类包含的函数
void say(){
printf("%s的年龄是 %d,成绩是 %f\n", name, age, score);
}
};
int main(){
//通过类来定义变量,即创建对象
class Student stu1; //也可以省略关键字class
//为类的成员变量赋值
stu1.name = "小明";
stu1.age = 15;
stu1.score = 92.5f;
//调用类的成员函数
stu1.say();
return 0;
}
[例2]//上述代码与以下输出一致
#include <stdio.h>
//定义结构体 Student
struct Student{
//结构体包含的成员变量
char *name;
int age;
float score;
};
//显示结构体的成员变量
void display(struct Student stu){
printf("%s的年龄是 %d,成绩是 %f\n", stu.name, stu.age, stu.score);
}
int main(){
struct Student stu1;
//为结构体的成员变量赋值
stu1.name = "小明";
stu1.age = 15;
stu1.score = 92.5;
//调用函数
display(stu1);
return 0;
}