一、类的定义
1.1定义
类是c++语言对编程思想的概括深化,其前期的C语言使能面向过程的语言,思想是注重对程序每一步的理解;而面向过程的是C++语言之父把生活的类与对象的思想应用于程序设计之中,把程序抽象成一个个对象。
C++面向对象的三大特性为:封装、继承、多态
C++认为万事万物都皆为对象,对象上有其属性和行为
例如:
人可以作为对象,属性有姓名、年龄、身高、体重…,行为有走、跑、跳、吃饭、唱歌…
车也可以作为对象,属性有轮胎、方向盘、车灯…,行为有载人、放音乐、放空调…
具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类
1.2作用
封装是C++面向对象三大特性之一
封装的意义:
将属性和行为作为一个整体,表现生活中的事物(其实就是用户设置一个自己的数据类型)
将属性和行为加以权限控制
封装意义
在设计类的时候,属性(变量)和行为(函数)写在一起,表现事物,变量一般放在私有,函数放在public
语法:class 类名{ 访问权限: 属性 / 行为 };
二、类的封装特性
所谓封装特性就是把变量和函数都封装进类里面。一个类里面的函数称为方法,变量称为属性。
三、源码实例
示例1设计一个圆类)(circle)
class circle{
public :
double m_r;
//第一中赋值方法
void fuzhi()
{
cout<<"please input your r"<<endl;
cin>>m_r;
}
//第二种赋值方法
void fuzhi1(int a)
{
m_r=a;
}
double calculate()
{
return 2*PI*m_r;
}
};
示例2 设计一个学生类,属性有姓名、学号和分数,可以给姓名和学号赋值,可以显示学生的姓名、学号和分数。
class student{
public :
string name;
int stu_id;
double score;
public:
void set_name(string na)
{
name=na;
}
void set_stu_id(int id)
{
stu_id=id;
}
void set_score(double score1)
{
score=score1;
}
void getvalue()
{
cout<<"student's id is "<<stu_id <<"student's name is "<<name ;
cout<<"student 's score is "<<score;
}
};
示例3:类的成员的三种属性
公共属性 public(成员内可以访问,成员外也可以访问)
保护属性 protected(成员内可以访问,成员外不可以访问
私有属性 private(成员内可以访问,成员外不可以访问)
*/
class perpon{
public :
string name;
protected :
string car;
private :
int id_card;
public :
void func()
{
name="Lijiax";
car="volove";
id_card=123456789;
}
};
main.c
int main()
{
circle c1;
c1.fuzhi();
cout<<"使用fuzhi函数求得圆的周长是"<<c1.calculate()<<endl;
c1.fuzhi1(2);
cout<<"使用fuzhi1函数求得圆的周长是"<<c1.calculate()<<endl;
student s1;
s1.set_name("马伟");
s1.set_stu_id(101);
s1.set_score(100);
s1.getvalue();
cout<<"---------------------------"<<endl;
perpon p1;
p1.name="ll";
//p1.car="benci";保护属性,无法访问,程序会报错
return 0;
}