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

C++速学day1

抽象

        数据抽象
        功能抽象

即抽象出对某些东西的共性,比如说人的名字,性别,年龄,人的行为,吃饭,走路,工作学习之类。用C++的函数来表达。对同一个研究对象,由于研究的问题侧重点不同,也可能形成不同的抽象结果。

封装

        

class Circle
{
public:Circle(double r = 0);void set_r(double r = 0);double area();
private:double radious;double pai = 3.14;
};

比如说一个抽象出的圆的定义:

首先用class 来进行封装。class就是类的定义。 

(类和对象就是抽象和具体的关系)

封装中的参数:

1、有三种关键字:private    protected  public   //这些个关键字从出现开始到下一个关键字为止失效

public:   //类的使用者只能使用public这个成员

这些关键字的意义:让这些数据的成员不能被调用只能通过函数与其产生一定的联系。
                                (调用方法:  对象.类中函数   )

封装中重要的函数:

构造函数:
    1、不带返回值
    2、函数命名与本类的类名相同
    3、系统提供的这个构造函数是不带参的,并且是空的

Point(int x=0, int y=0):m_x(x),m_y(y)
{cout<<"Point(int )" <<endl;
}

复制构造函数:

 Point(const Point &other):m_x(other.m_x),m_y(other.m_y){cout<<"&Point" <<endl;}

析构函数:

  --> ~函数名
(析构函数不能传参数)    //不能被重载 

~Point(){cout<<"~Point" <<endl;}

函数后面的“:” 代表对对象的初始化 ,与在程序中效果 相同 但初始化效率更快。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 做不好PPT的原因
  • 左手坐标系、右手坐标系、坐标轴方向
  • thinkphp之命令执行漏洞复现
  • SpringBoot入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享
  • LLaMA- Adapter V2: Parameter-Efficient Visual Instruction Model
  • AI在招聘市场趋势分析中的应用
  • 完美解决pip命令版本冲突导致对应版本模块包无法安装的问题
  • PHP进阶-CentOS7部署LNMP服务架构的项目
  • Swift 析构过程
  • 初步认识vue
  • android studio 无法识别androidTest模块Test模块
  • Linux 内核源码分析---I/O 体系结构与访问设备
  • 【多线程-从零开始-伍】volatile关键字和内存可见性问题
  • OD C卷 - 多线段数据压缩
  • 【PCA提取主要特征通俗】
  • 分享一款快速APP功能测试工具
  • 【笔记】你不知道的JS读书笔记——Promise
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • extract-text-webpack-plugin用法
  • Java 多线程编程之:notify 和 wait 用法
  • Javascript Math对象和Date对象常用方法详解
  • Java比较器对数组,集合排序
  • java概述
  • k个最大的数及变种小结
  • node和express搭建代理服务器(源码)
  • oldjun 检测网站的经验
  • Python socket服务器端、客户端传送信息
  • Python连接Oracle
  • Quartz初级教程
  • 电商搜索引擎的架构设计和性能优化
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 基于游标的分页接口实现
  • 你真的知道 == 和 equals 的区别吗?
  • 手写一个CommonJS打包工具(一)
  • 我的面试准备过程--容器(更新中)
  • 携程小程序初体验
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • C# - 为值类型重定义相等性
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • ###项目技术发展史
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #git 撤消对文件的更改
  • (11)MATLAB PCA+SVM 人脸识别
  • (3)nginx 配置(nginx.conf)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (回溯) LeetCode 46. 全排列
  • (三)elasticsearch 源码之启动流程分析
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (四)opengl函数加载和错误处理
  • (原)Matlab的svmtrain和svmclassify