类与对象
c++面对对象的三大特征为:封装、继承、多态
c++面对对象的思想认为完事万物都皆为对象,对象上有具有其属性和行为。
1.1封装
1.1.1封装的意义之一
封装是c++面向对象三大特征之一
封装的意义:
- 将属性和行为作为一个整体,表现生活的事物
- 将属性和行为加以权限控制
在设计类的时候,属性和行为写在一起,表现事物
语法:
class 类名 { 访问权限: 属性 / 行为};
class 类名
{
访问权限:
属性 / 行为
};
设计一个类求圆的周长和面积
代码示例:
using namespace std;
const double PI=3.14;
//封装一个圆类 求圆的面积 s = Π*r^2
class circle
{
//属性
public:
//半径
double r;
//行为
double S_circle()
{
return PI * r * r;
}
double C_circle()
{
return PI * 2*r;
}
};
int main()
{
//通过圆类 创建一个具体的圆s1对象
circle s1;
//给对象s1进行赋值
s1.r = 1.32;
cout << "圆的面积是:" << s1.S_circle() << endl;
//注意类里面的函数在main中仍然要以 函数的方式 调用
cout << "圆的周长是:" << s1.C_circle() << endl;
}
在写代码时候注意:
类内的函数在main函数中仍然要以 函数的方式 调用
输出结果
1.1.2封装的意义之二
类在设计时,可以把属性和行为放在不同的权限下,加以控制
访问权限有三种:
- public 公共权限-------类内可以访问 类外也能访问
- protected 保护权限------类内可以访问 类外不能访问
- private 私有权限------类内可以访问 类外不能访问
1.1.3 struct 和class的区别
c++中和structural和class唯一区别就是在于默认的访问权限不同
struct:默认权限为 公共 public
class:默认权限为 私有 private
代码:
class c1
{
//class age 默认为私有
int age;
};
struct c2
{
//struct cd 默认为共有
int cd;
};
int main()
{
class c1 s;
//s.age = 10; //不可访问,无访问权限
struct c2 ss;
ss.cd = 100; // 可以访问
}
在实际写代码的时候一定要注意:
设计好类内各个成员的权限,以免造成后期的问题