当前位置: 首页 > news >正文

免费的做网站培训机构还能开吗

免费的做网站,培训机构还能开吗,平台设计方案,网站收藏的链接怎么做文章目录 一、类的封装 : 将数据和方法封装到一个类中1、封装最基本的表层概念2、代码分析 - 基本封装3、代码分析 - 类对象作为参数传递的几种情况 ( 指针 / 引用 / 直接 )4、完整代码示例 一、类的封装 : 将数据和方法封装到一个类中 1、封装最基本的表层概念 将数据和方法封…

文章目录

  • 一、类的封装 : 将数据和方法封装到一个类中
    • 1、封装最基本的表层概念
    • 2、代码分析 - 基本封装
    • 3、代码分析 - 类对象作为参数传递的几种情况 ( 指针 / 引用 / 直接 )
    • 4、完整代码示例





一、类的封装 : 将数据和方法封装到一个类中




1、封装最基本的表层概念


将数据和方法封装到一个类中 , 是封装最基础的概念 ;


类的封装 最基本的功能 就是将 若干数据 和 若干方法 , 封装到一个类中 , 这些数据在内存中以一个整体的形式进行运作 ;

封装 Encapsulation : 将 数据 和 操作 封装在类中 , 可以将 类 内部的 实现细节 隐藏 , 只暴露有限的 接口 与外部进行交互 , 从而达到保护 类 对象的 内部状态 不被外部随意修改 ;


将 现实世界 中 存在的 客观事物 封装成 抽象 的 类 , 类 中 包含了 数据 和 操作 ,

  • 只有 可信的 类 或 对象 才能访问 隐藏起来的信息 ;
  • 大部分类默认只能访问 类 公开的接口 ;

2、代码分析 - 基本封装


在下面的代码中 , 定义了一个 Circle 类对象 , 其中 封装了 2 个成员属性 ;

	// 定义属性成员 , 圆的半径double m_r;// 定义属性成员 , 圆的面积double m_s;

3 个成员方法 ;

定义该 Circle 类对象 circle , 则借助 circle 对象 , 可以直接访问其中的 2 个成员属性 和 3 个成员 方法 ;

	// 获取半径double getR(){return m_r;}// 设置半径void setR(double r){m_r = r;}// 获取面积double getS(){m_s = 3.14 * m_r * m_r;return m_s;}

3、代码分析 - 类对象作为参数传递的几种情况 ( 指针 / 引用 / 直接 )


使用 类 对象 作为函数参数时 , 分别讨论下面三种情况 ;

  • 第一种情况 : 使用 类对象 指针作为参数 , 传参时 , 传入的必须是一个指针值 , 也就是地址值 ,
    • 如果将 Circle circle 对象传入 , 必须使用 取地址符 & 获取对象的地址 , 才能传给 void fun1(Circle* circle) 函数 ;
    • 在函数内部调用 circle 对象的成员 , 需要使用 -> 符号调用 , 也就是访问指针内存空间的成员的方式 ;
// 使用 类对象指针作为参数
void fun1(Circle* circle) 
{cout << "fun1(Circle* circle) : " << circle->getS() << endl;
}Circle circle;
// 传递指针必须使用取地址符取地址
fun1(&circle);
  • 第二种情况 : 使用 类对象引用作为 参数 ; 传参时 , 可以直接将 circle 对象传入 , 因为 C++ 编译器在编译引用时 , 会自动为 引用参数 添加 & 取地址 , 在函数内部访问时 , 会自动为引用添加 -> 符号访问内存空间数据 , 引用 等价于 一级指针 ;
// 使用 类对象引用作为参数
void fun2(Circle& circle)
{cout << "fun2(Circle& circle) : " << circle.getS() << endl;
}Circle circle;
// 传递引用直接传递即可
fun2(circle);
  • 第三种情况 : 直接使用 类对象作为参数 , 这种情况下 , 需要拷贝整个对象作为副本 , 函数调用效率很低 , 不建议使用这种方式 , 该调用方式与 引用 类型参数操作相同 , 推荐使用 引用类型的参数 ;
// 直接使用 类对象作为参数
void fun3(Circle circle)
{cout << "fun3(Circle circle) : " << circle.getS() << endl;
}Circle circle;
// 传递对象直接传递 , 需要拷贝整个对象效率很低
fun3(circle);

4、完整代码示例


完整代码示例 :

// 包含 C++ 头文件
#include "iostream"// 使用 std 标准命名空间
//		该命名空间中 , 定义了很多标准定义
using namespace std;// 定义圆形类
class Circle
{
public:// 定义属性成员 , 圆的半径double m_r;// 定义属性成员 , 圆的面积double m_s;public:// 获取半径double getR(){return m_r;}// 设置半径void setR(double r){m_r = r;}// 获取面积double getS(){m_s = 3.14 * m_r * m_r;return m_s;}
};// 使用 类对象指针作为参数
void fun1(Circle* circle) 
{cout << "fun1(Circle* circle) : " << circle->getS() << endl;
}// 使用 类对象引用作为参数
void fun2(Circle& circle)
{cout << "fun2(Circle& circle) : " << circle.getS() << endl;
}// 直接使用 类对象作为参数
void fun3(Circle circle)
{cout << "fun3(Circle circle) : " << circle.getS() << endl;
}int main()
{Circle circle;circle.setR(10);cout << "圆面积为 : " << circle.getS() << endl;// 传递指针必须使用取地址符取地址fun1(&circle);// 传递引用直接传递即可fun2(circle);// 传递对象直接传递 , 需要拷贝整个对象效率很低fun3(circle);// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
}

执行结果 :

圆面积为 : 314
fun1(Circle* circle) : 314
fun2(Circle& circle) : 314
fun3(Circle circle) : 314
Press any key to continue . . .

在这里插入图片描述

http://www.hkea.cn/news/788100/

相关文章:

  • 扬中做网站的公司seo虚拟外链
  • 永川集团网站建设免费网站seo诊断
  • 国外 上海网站建设网络营销推广方式案例
  • 24手表网站网络技术推广服务
  • 鞍山网站制作推广游戏推广员判几年
  • 360如何做网站优化网页设计制作软件
  • 金华网站建设电话电商运营主要负责什么
  • 百度的官方网站游戏推广工作好做吗
  • 著名的深圳网站建设网页快照
  • 政务网站建设要求快速排名软件哪个好
  • 自己网站怎么做优化色盲和色弱的区别
  • 苏州建网站公司seo网络推广培训班
  • 福清市建设局网站石家庄学院
  • 找考卷做要去哪个网站中国国家培训网官网查询
  • 软件系统开发的大概步骤优化网站标题名词解释
  • 院校网站建设模板建站平台
  • 淘宝网站内搜索引擎优化怎么做广告推广平台网站有哪些
  • 大片播放网站国外免费推广网站有哪些
  • flash网站cms排名sem优化软件
  • 申请完域名怎么做网站百度链接提交
  • 驻马店市可以做网站的公司百度搜索竞价排名
  • 郑州市做网站吉林百度查关键词排名
  • 济宁网站建设seo抖音seo源码搭建
  • 茂名网站建设方案书简述seo和sem的区别
  • 江西网站做的好的企业文化百度指数在哪里看
  • 山东电商网站建设seo网站排名优化公司
  • 赤峰市做网站公司今日的最新消息
  • 上海最大的贸易公司seo网络推广机构
  • jsp 网站开发广告发布平台
  • b2c网站综合对比评价站长统计幸福宝