🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[info]# **类和对象的关系** - 在C++中,类是用户自定义的数据类型,称为类类型,和基本数据类型一样,都是C++合法的数据类型. - 广义上讲,对象是指一切可以被感知和触摸的客观实体.按程序设计的观点,对象则是变量概念的进一步推广和延伸. - 在声明类类型后,用该类的类名去定义一个变量,则称这个变量为该类的一个对象.类是抽象的,不占用内存,而对象是具体的,占用存储空间. - 类与对象的关系等价于基本数据类型与变量的关系. >[info]# **类中的成员** - 数据成员 - 成员函数 ## **成员访问限定符** **public**:类中成员被定义为public,则该成员可被任何函数访问 **protected**:类中成员被定义为protected,则该成员只能被该类中的函数和友元访问,还可以被该类继承得到的类访问。 **private**:类中成员被定义为private,则该成员只能被该类中的函数和友元访问 >[info]# **类的声明** ``` class 类名 { public: 公用的数据和成员函数; protected: 保护的数据和成员函数; private: 私有的数据和成员函数; }; ``` ## **例子** ``` #include <iostream> // 预处理命令 using namespace std; class Student //声明一个类,类名为Student { private: //以下为类中的私有部分 int num; //私有变量num int score; //私有变量score public: //以下为类中的公用部分 void setdata( ) //定义公用函数setdata { cin>>num; //输入num的值 cin>>score; //输入score的值 } void display( ) //定义公用函数display { cout<<”num=”<<num<<endl;//输出num cout<<”score=”<<score<<endl;//输出score } } ; // 类的声明结束 ``` >[info]# **定义对象** ## **先声明类型,然后再定义对象** 声明了类类型后,定义对象有两种形式: ​ 1.class 类名 对象名 ``` ​class Student stud1,stud2; ``` ​ 2.类名 对象名 ``` ​ Student stud1,stud2; ``` ## **在声明类类型的同时定义对象** ``` class Student //声明类部分 { public: //先声明公有部分 void display { cout<<"name:"<<name<<endl; cout<<"num:"<<num<<endl; cout<<"sex:"<<sex<<endl; } private: //后声明私有部分 int num; char name[20]; char sex; }stu1,stu2; //定义了两个Student类的对象 ``` ## **不出现类名,直接定义对象** ``` class //无类名 { public: //声明以下部分为共有 | | | private: //声明以下部分为私有 | | | }stu1,stu2; //定义了两个无类名的对象 ``` >[info]# **类和结构体的异同** - C的结构可以把相关联的数据元素组成一个单独的统一体. - C++的类既能包含数据成员,又能包含成员函数. - C++中的结构也可以有成员函数,而C中不允许. ## **C++中类与结构的唯一区别:** **类**(class)声明中,其成员默认情况下是private的. **结构**(struct)声明中,其成员默认情况下是public的.