今日学习内容:面向对象
面向对象:
优势:可以实现数据类型扩展
易于理解
呈现形式:类
特性:
封装:
先将成员绑定为一个整体,再将被绑定成员划分权限,所以在类中,成员和成员直接不遵从代码顺序结构
权限:
public
公有的:类内可以访问 子类可以访问 类外可以访问
private:
私有的:类内可以方位 子类不可以访问 类外不可以访问
protected:
受保护的:类内可以访问 子类可以访问 内外不可以访问
实例化对象:
优点:为了保护数据的安全性以及方便使用成员。
破坏封装权限:
私有化属性,公有化功能: 借助set get 函数完成
友元全局函数
全局函数需要访问Password类下的私有成员现在是访问不到的
加上友元就可以访问了
Password类允许 全局函数visitFunc访问本类的私有成员
友元成员函数
难点:在于声名和定义的调整上
类内的成员函数的声名和定义要分开些 才能访问别的类下的元素
友元类
类里声名的函数 访问别的类里的成员 要在被访问的类里声名友元类
构造函数:
作用:用于初始化本类成员属性
语法:
类名(参数列表){函数体}
函数名和类名必须一致, 构造函数不具备返回值 ,构造函数支持重载
分类 :隐式构造 显示构造
隐式构造:程序员在类中,没有手动给出构造函数,系统会自动分配一个构造函数
显示构造:程序员在本类中,手动按照构造函数语法写出了构造函数
函数的调用方式:
构造
委托构造
一个构造函数在另外一个构造函数执行的时候被调用,调用顺序:先调用委托构造,在调用原有构造
委托构造无法和列表初始化共同出现
拷贝构造函数
讲一个对象传递给另一个对象时会调用拷贝构造
下面这种方法等价于上面这种方法