梳理C++基础,纯干货或许会很干燥。
——————————————————————————>>>>>分界线
类:指对象的类型。类代表了一批对象的共性和特征。抽象的,不占用内存。
对象:类的具体实例。具体的,占用储存空间。
类是对象的抽象,对象是类的具体实例。
可以同结构体进行比较学习(可以尝试开一篇试一试水)
同结构体类似,先声明一个类类型,再用它定义若干个同类型的对象(类似于结构体)。这些对象是类类型的变量。类是对象的模板。
结构体类型:
struct student
{
int num;
char name[20];
float score;
};
定义结构体且结构体变量,只包括数据(变量),不包括操作。
类类型:
class student1 //类头:为关键字calss和类名student1组成
{
int num;
char name[20];
char sex; //以上为数据成员
void display() //以上为成员函数(也可以单纯声明,函数体可以在类框架外定义)
{
cout<<"num: "<<num<<endl;
cout<<"name: "<<name<<endl;
cout<<"sex: "<<sex<<endl; //函数的操作语句
}
};
student1 stud1,stud2; //定义了两个student1类的对象stud1,stud2
请仔细看最后一句,类与对象的关系:
student1 stud1,stud2; //定义了两个student1类的对象stud1,stud2
数据成员和成员函数共同被称为类体。类体把数据和操作合在一起。
类体中为类的成员表,类的成员表通常包括:成员变量,成员函数,静态成员(点击了解静态成员)。
类对象成员内容对外界隐蔽,若想类外可调用类内成员。可使用private和public进行公私区分:
class student1
{
private: //以下(在public前)属私有部分
int num;
char name[20];
char sex;
public: //以下属公共部分
void display()
{
cout<<"num: "<<num<<endl;
cout<<"name: "<<name<<endl;
cout<<"sex: "<<sex<<endl;
}
};
student1 stud1,stud2;
若不是用private和public进行区分,系统即默认为私有private。(请注意,函数不一定都是公有的,数据不一定都是私有的)
私有的成员,只能被本类中的成员函数所引用,类外不能调用(除友元类)。
共有的成员,可被本类中的成员函数所用,也可被类的作用域内其它函数所引用,外界可以调用。
另外还有一种成员访问限定符(protected),被声明成员称为受保护成员,不能被类外访问,可被派生类的成员函数访问。
————请注意区分受保护成员和私有类成员
private和public:
(1)出现顺序任意。(不一定谁在前谁在后)
(2)出现次数任意。可出现多次,每个部分的有效范围从该限定符位置开始,到另一个访问限定符或类体结束(花括号{})为止。但每个限定符还是尽量使用一次。类体不一定每个限定符都出现。
定义对象的方法:
(1)在类框架(花括号后、分号前)定义
class student1
{
//类内部声明
}stud1,stud2;//属于“student1”类的两个对象
(2)在其它地方(譬如主函数内)定义
class student1
{
//类的内部
};
int main()
(
student1 stud1,stud2;
return 0;
}
请注意!并不代表一定要有类名(无类名是允许的,只是并不提倡)
其次 声明类还可以在类名前加class(类关键字),可有可无。