【前言】
众所周知C++是面性对象编程(OOP)支持类和对象的概念,可以使用封装、继承和多态来组织和管理代码。下面将初步了解类。
【回顾结构体】
我们回顾一下结构体,比如下面这段代码。我们定义了一个叫做S_student的结构体,但是主函数(main函数)看起来过于臃肿,能不能化简一下呢?
#include<bits/stdc++.h>
using namespace std;
struct S_student{
int Number;//表示学号
string Name;//表示名字
int Class ;//表示班级;
};
int main(){
S_student student;
student.Number=1;
student.Name="Jack";
student.Class=1;
cout<<"我的名字是"<<student.Name<<endl//student的自我介绍
<<"我的学号是"<<student.Number<<endl
<<"我的班级是"<<student.Class;
}
所以我又定义了put函数和print函数,这样看起来简洁多了。
#include<bits/stdc++.h>
using namespace std;
struct S_student{
int Number;//表示学号
string Name;//表示名字
int Class ;//表示班级;
};
void put(S_student &student,int Number,string Name,int Class){
student.Number=Number;
student.Name=Name;
student.Class=Class;
}
void print(S_student &student){//student的自我介绍
cout<<"我的名字是"<<student.Name<<endl
<<"我的学号是"<<student.Number<<endl
<<"我的班级是"<<student.Class;
}
int main(){
S_student student;
put(student,1,"Jack",1);
print(student);
}
但远远不止于此,因为结构体里面不仅可以有变量,还可以有函数,于是我再次进行改进。
#include<bits/stdc++.h>
using namespace std;
struct S_student{
int Number;//表示学号
string Name;//表示名字
int Class ;//表示班级;
void put(S_student &student,int Number,string Name,int Class){
student.Number=Number;
student.Name=Name;
student.Class=Class;
}
void print(S_student &student){//student的自我介绍
cout<<"我的名字是"<<student.Name<<endl
<<"我的学号是"<<student.Number<<endl
<<"我的班级是"<<student.Class;
}
};
int main(){
S_student student;
student.put(student,1,"Jack",1);
student.print(student);
}
【初步认识类】
那么现在①将"struct"改为"class",②在结构体第二行加上"public:",③类中可以省略“student.”。改成这样:
#include<bits/stdc++.h>
using namespace std;
class C_student{//类名前面一般加"C_"
public:
int Number_;//表示学号,加"_"是为了于下面函数中的参数区分。
string Name_;//表示名字
int Class_;//表示班级;
void put(int Number,string Name,int Class){
Number_=Number;
Name_=Name;
Class_=Class;
}
void print(){//student的自我介绍
cout<<"我的名字是"<<Name_<<endl
<<"我的学号是"<<Number_<<endl
<<"我的班级是"<<Class_;
}
};
int main(){
C_student student;
student.put(1,"Jack",1);
student.print();
}
解释一下:
1.类的定义:class 类名{};
2."public"关键字是声明成员变量和成员函数的性质,“public”是公共类表示该关键字到下一个关键字内的成员变量和成员函数是在类的里面和外面都可以用。像下面代码中h_,w_,l_是公共的;"private"则表示私有的也就是说下面代码中的V_只能在box类中使用;还有一个关键字"protected"表示受保护的,这个以后再讲。
class C_box{
public:
int h_;
int w_;
int l_;
private:
int V_;
};
【总结】
C++类是一种用于封装数据和相关操作的编程构造。类可以看作是一种用户自定义的数据类型,其中包含了数据成员和成员函数。数据成员用于存储类的状态信息,而成员函数用于操作和访问这些数据。其实就是将结构体包装了一下起个新名字继续用而已,下一篇我们将要更进一步研究。