类和对象 C++面向对象的三大特性为:封装、继承、多态
C++认为万事万物都皆为对象,对象上有其属性和行为
举个例子:
人是一个类,实例对象就是指具体的人,类里边有属性,有方法;
通过人类实例出一个对象1:名称叫小明,年龄25,会唱歌、跳舞
这里的名称年龄就是属性,唱歌跳舞等可以做的事情就是方法
一个类可以实例出不同的对象,属性和方法都可以有区别
比如再通过人类实例一个对象2:名称叫小红,年龄18,会电焊、会开挖掘机
类的基本使用
定义类
使用class关键字
语法:
class name
{
访问权限:
属性
行为
};
举例:
class Animal {
private:
// 属性(成员变量)
double length;
double width;
public:
// 行为、方法(成员函数声明)
void run(void);
void cry(void);
};
//实现成员函数
void Animal::run(){
cout << "runing" <<endl;
}
void Animal::cry(){
cout << "ciying" <<endl;
}
实例对象
Animal dog;//用动物类实例了一个狗
//修改狗的属性
dog.length = 2;
dog.width = 4;
//事实上这样改不了,因为类定义属性设置了private,
//权限应要public才能修改
类的访问权限
名称 | 作用范围 | 不同点 | |
---|---|---|---|
public | 公共权限 | 类内可以访问,类外可以访问 | \ |
protected | 保护权限 | 类内可以访问,类外不可以访问 | 继承关系中,子可以使用父的 |
private | 私有权限 | 类内可以访问,类外不可以访问 | 继承关系中,子不能使用父的 |
封装
封装是C++面向对象三大特性之一,定义类,将属性和行为写在一起,加以权限控制就是一种封装;
将类的实现细节隐藏起来,暴露出一个简洁、清晰的接口。封装提高了代码的可读性、安全性和易维护性,有利于更高效地进行软件开发。
封装的主要优点如下:
- 提高代码的可重用性
- 提高代码的安全性,避免外部直接访问内部数据
- 降低代码的耦合度,有利于模块化开发
- 提高代码的可读性和可维护性
struct和class区别
在C++中 struct和class唯一的区别就在于 默认的访问权限不同 区别:
- struct 默认权限为公共
- class 默认权限为私有