3.1类的构成
3.1.1从结构体到类
例【3.1】有关成绩结构体的例子
#include <iostream>
using namespace std;
struct Score //声明了一个名为Score的结构体
{ int mid_exam;
int fin_exam;
};
int main()
{
Score score1;
score1.mid_exam=80;//可以在结构体外直接访问数据mid_exam
score1.fin_exam=88;//可以在结构体外直接访问数据fin_exam
cout<<"期中成绩:"<<score1.mid_exam<<"\n期末成绩:"<<score1.fin_exam
<<"\n总评成绩:"<<(int)(0.3*score1.mid_exam+0.7*score1.fin_exam)<<endl;
return 0;
}
程序的运行结果如下:
期中成绩:80
期末成绩:88
总评成绩:85
--------------------------------
Process exited after 0.01235 seconds with return value 0
请按任意键继续. . .
c语言中的结构体存在一些缺点。一旦建立了一个结构体变量,就可以在结构体外直接访问数据。
在c结构体中的数据是很不安全的,c结构体无法对数据进行保护和权限控制。
因此,在c++中,引入了类的概念。类比结构体更加安全有效。
3.1.2类的构成概述。
类的声明格式:
class a{
public:
公有数据成员;
公有成员函数;
protected:
保护数据成员;
保护成员函数;
private:
私有数据成员;
私有成员函数;
};
用一个类Score来描述分数,其形式如下:
class Score{
public:
void setScore(int m,int f);//公有成员函数
void showScore();//公有成员函数
private:
int mid_exam;//私有数据成员
int fin_exam;//私有数据成员
};
- 类体中一般有 private、protected 和 public 3 个关键字,被称为访问权限关键字。私密性:private>protected>public
- private:私有部分。只能由本类的的成员函数访问,不能在类的外部访问。
- public:公有部分。类内类外都可访问,对外完全开放。公有成员函数是类与外界的接口,来自类外部的访问需要通过这种接口来进行。
- protected:保护部分。保护成员可以由本类的成员函数访问,也可以由本类的派生类的成员函数访问,而类外的任何访问都是非法的,即它是半隐蔽的。
说明:
- 对一个具体的类来讲,类声明格式中的 3 个部分并非一定要全有,但至少要有其中的一
部分。 - 若私有部分处于类体中第一部分时,关键字 private 可以省略。
- 不能在类声明中给数据成员赋初值。