类和对象
C++面向对象的三大特性:封装、继承、多态
万事万物皆为对象,对象上有其属性和行为。
封装
封装的意义
封装是C++面向对象三大特性之一
- 将属性和行为作为一个整体,表现生活中的事物
在设计类的时候,属性和行为写在一起,表现事物
语法: class 类名{访问权限:属性/行为}; - 将属性和行为加以权限控制
- 类中的属性和行为我们统一称为 成员
- 类中的属性我们称之为成员属性或者成员变量
- 类中的行为我们称之为成员函数或者成员方法
//设计一个圆类,求圆的周长
//圆求周长公式:2*PI*半径
const double PI=3.1415926; //圆周率
class Circle{ //圆对象
//访问权限
//公共权限
public:
//属性
//半径
int m_r;
//行为
//获取圆的周长
double calculateZC(){
return 2*PI*m_r;
}
double calculateMJ(){
return PI*m_r*m_r;
}
};
int main(){
//通过圆类创建具体的对象(圆)
Circle c1; //实例化:通过一个类创建一个对象的过程
//给圆对象的属性进行赋值
c1.m_r=10;
cout<<"圆的半径="<<c1.m_r<<"\t圆的周长="<<c1.calculateZC()<<"\t圆的面积="<<c1.calculateMJ()<<endl;
system("pause");
return 0;
}
- 类在设计时,可以把属性和行为放在不同的权限下,加以控制,访问权限有三种:
1、public 公共权限
2、protected 保护权限
3、private 私有权限
//公共权限 public 成员类内可以访问,类外可以访问
//保护权限 protected 成员类内可以访问,类外不可以访问,儿子可以 访问父亲中的保护内容
//私有权限private 成员类内可以访问,类外不可以访问,儿子不可以访问父亲中的保护内容
class student{
public: //公共权限
string name;
protected: //保护权限
string sno;
private: //私有权限
string pwd;
public:
void init(){ //类内访问可以访问三种属性
name="无名氏";
sno="00000000";
pwd="******";
}
void showInfo(){
cout<<"name="<<name<<"\tsno="<<sno<<"\tpwd="<<pwd<<endl;
}
};
int main(){
student stu; //类外只能访问public权限的属性和方法
stu.init();
stu.showInfo();
system("pause");
return 0;
}
C++中struct和class的区别
在C++中struct和class唯一的区别就在于默认的访问权限不同。
区别:
- struct默认权限为公共
- class默认权限为私有
成员属性设置为私有
优点:
- 将所有成员属性设置为私有,可以自己控制读写权限
- 对于写权限,我们可以检测数据的有效性