C++中面向对象的三大特征:封装,继承,多态
C++认为万事万物皆为对象,对象上有其属性和行为
具有相同性质对象,可以抽象为类
1.封装的意义
将属性和行为作为一个整体,表现生活中的事物
将属性和行为加以权限控制
封装意义一:
在设计类的时候,属性和行为写在一起,表现事物
语法:class 类名{ 访问权限: 属性 / 行为 };
class circle
{
public://访问权限
int r;//属性是半径
double fun()//行为求周长,通常是一个函数
{return 2*PI*r; }
};
int main()
{
//通过圆类创建具体的圆(就是对象)
//实例化 就是通过一个类创建对象的过程
circle c1;
c1.r = 10; //.用来赋值
cout << "周长为" << c1.fun() << endl;
return 0;
}
类中的属性和行为都叫做成员
属性 也叫成员属性,成员变量
行为 也叫成员函数,成员方法
封装意义二:
类在设计时,可以将属性和行为放在不同的权限下,加以控制
访问权限有三种:
public:公共权限 成员 类内可以访问,类外也可以访问
protected:保护 成员 类内可以访问,类外不可以访问
private:私有 成员 类内可以访问,类外不可以访问//继承具体介绍
2.struct与class的区别
唯一区别在于默认的访问权限不同
struct 默认权限为公共
class 默认权限为私有
3.成员属性设置为私有
优点:设置为私有,可以自己控制读写权限,对于“写“权限,可以检测数据的有效性
属性设置为私有,通常会有公共入口,对他们进行读写权限操作
公共入口通常为public属性的函数用来读和写
在一个类中,可以让另一个类成为这个类的成员
公共入口的设置和获取
int 新参数;
void set(数据类型 参数)
{ 新参数 = 参数;
}
int get()
{ return 新参数;}
通常把类放到另外的头文件里面,在主函数里面做引用
头文件要加#pragma once 防止头文件重复包含,
头文件里面写函数声明
源文件不需要类的属性,只留下函数原型就行
源文件要表明他在哪个作用域下 用双冒号::
作用域(类名)::各个函数名