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

网站建设管理工作情况汇报网站建立分站

网站建设管理工作情况汇报,网站建立分站,wordpress如何重新安装,网站建设推广需要多少钱目录 前言 正文 类封装 为什么要进行类封装 概念 访问修饰符 构造函数 概念 特点 析构函数 概念 特点 再谈面向过程与面向对象 面向过程 代码举例 面向对象 代码举例 结语 下期预告 前言 在学习过【C语言进阶C】 C基础--让你丝滑的从C语言进阶到C 之后&am…

目录

前言

正文

类封装

为什么要进行类封装

概念

访问修饰符

构造函数

概念

特点

析构函数

概念 

特点

再谈面向过程与面向对象

面向过程 

代码举例

面向对象 

 代码举例

结语

下期预告


前言

在学习过【C语言进阶C++】 C++基础--让你丝滑的从C语言进阶到C++ 之后,相信小伙伴们已经对C++面向对象的思维和C++中的一些语法有一定的了解了,那么我们继续往下学习,本次要学习的内容非常重要,那就是---类,它会在接下来的学习道路上扮演十分关键的角色。大家好好看!好好学!


正文

类封装

为什么要进行类封装

C语言中一般是由数据和算法组成,数据和算法彼此独立,关联性不强,在C++中将相互关联数据和算法封装起来,形成结构体或类,无论类还是结构体都是一个抽象的概念,只有定义类的变量时,数据才会真实存在,这个变量我们称之为对象,C++程序过程中,尽量避免单独的数据和算法,而是由一个类对象组成的,这就是面向对象。

概念

类(class):完成某一功能的数据和算法的集合,是一个抽象的概念。

对象:类的一个实例,具体的概念,是真正存在于内存中的。

 定义类的关键字class,类名一般以大写的C开头,成员属性一般以m_开头。

class CTest {int m_a;  //成员属性(成员变量)void show();  //成员方法(成员函数)
};

访问修饰符

类成员访问修饰符:描述了类成员的访问控制,即所能使用的一个范围,共有的public、保护的protected、私有的private(默认)。

public        :对外公开,在类内、类外都可以使用。

protected   :在类内和子类中可以使用。

private       :只能在类内使用。

对于类内的私有成员,我们可以提供访问接口(get***,set***)来按照一定的规则进行访问。

构造函数

概念

通常在定义变量时要初始化,在定义类对象时,成员属性并没有得到初始化。C++类提供了一种特殊的函数——构造函数。

构造函数:其作用是用来初始化类成员属性。空类中存在一个默认的无参数的构造,函数名为当前类名,无返回值。

class CTest {CTest (){}  //默认无参构造
};

特点

构造函数并不需要我们手动调用,在定义对象的时候会自动调用,这个默认的无参构造是编译器给提供的,函数体代码为空,所以在定义对象时虽然调用了,但并没有真正给成员初始化。所以多数情况下需要我们手动重构构造函数。

一个类中的构造函数允许存在多个,他们是函数重载的关系,重构的构造函数可以指定参数来符合我们需要的初始化过程。

注意

  • 只要重构了任何的构造函数,编译器将不会再提供那个默认的无参构造了。
  • 定义多个对象可能会执行不同的构造,这就要看在定义对象时如何指定参数了,会根据参数的类型、数量自动匹配对应的构造,但一个对象最终只能执行其中一个构造。

析构函数

概念 

析构函数:与构造函数相对应的析构函数,其作用是用来回收类中成员申请的额外空间,而不是对象本身。空类中存在一个默认的析构函数,函数名为~类名,无返回值,无参数。

class CTest {
~CTest(){ } //默认构造
};

特点

构造函数在对象的生命周期结束的时候,自动调用,编译器提供的默认的析构函数体代码也为空,我们可以手动重构,一旦重构,编译器就不会再提供那个默认析构了,与构造不同的是析构函数只允许存在一个。

注意

  • 析构在真正回收对象内存空间之前去调用,额外的空间回收完后,才真正回收对象内存空间。

再谈面向过程与面向对象

面向过程 

面向过程编程(Procedure-Oriented Programming,简称POP)是一种编程模型,也是初始踏入编程时接受的思想,过程即有一系列要执行的计算步骤,以过程为中心依次把要解决问题的步骤、流程分析出来,用函数封装好形成一个一个的模块,在主流程中按照具体的步骤调用相应的函数。

面向过程编程的主体是函数(模块),它以函数为中心,始终关注的是怎么一步一步解决问题,从而实现函数的顺序执行。

总结:自上向下,顺序执行、逐步细化。

代码举例

把大象放进冰箱:

void OpenRefrigerator(){cout<< "用手抓住冰箱门把手" <<endl;cout<< "缓慢打开门" <<endl;cout<< "拉到一定大的角度" <<endl;
}void PushElephant(int * p_refrig,int& h_refrig,int& h_ele){cout<< "找到冰箱的最大格子" <<endl;if(h_refrig < h_ele){cout<< "压缩一下大象" <<endl;h_ele = 5;}p_refrig = &h_ele;cout<< "大象放到冰箱里" <<endl;
}void CloseRefrigerator() {cout<< "开始推动冰箱门" <<endl;cout<< "继续推动冰箱门" <<endl;cout<< "冰箱门严丝合缝" <<endl;
}int main() {int heightEle = 10;   //大象的高度int heightRefrig = 10;  //冰箱的高度int * pEle = nullptr;   //冰箱里装的东西//---------开始打开冰箱-------------------OpenRefrigerator();//----------结束打开冰箱--------------------//----------开始装大象--------------------PushElephant(pEle,heightRefrig,heightEle);//----------结束装大象------------------------//----------开始关闭冰箱----------------------CloseRefrigerator();//-----------结束关闭冰箱---------------------return 0;
}

面向对象 

面向对象编程(Object-oriented programming,简称:OOP):面向对象编程是一种编程模型,以对象(数据)为中心,它把要解决的问题分解成各个对象(变量、数据)而不是各个流程、步骤,更专注于对象与对象之间的交互(而不是数据和方法、方法与方法),建立对象的目的不是为了完成一个步骤,而是为了描述某个对象在解决整个问题步骤中的属性和行为。涉及到的属性和方法都被封装到一起包含在其内部。

世界上的每个事物都可以是一个独立的对象,其都有自己的属性和行为,对象与对象之间通过方法来交互。

面向对象编程的分析问题步骤:分析问题中参与其中的哪些实体,这些实体应该有什么属性和方法,我们如何通过调用这些实体的属性和方法去解决问题。现实世界中,任何一个操作或者是业务逻辑的实现都需要一个实体来完成,实体就是动作的支配者,没有实体,就没有动作发生。

 代码举例

//定义大象的类
class CElephant {
public: int heightEle;
public:CElephant(int h) :height(h) {}
};//定义冰箱类
class Refrigerator {
public:int heightRefrig;CElephant* pEle;
public:Refrigerator(int h) :heightRefrig(h),pEle(nullptr){}void OpenRefrigerator() {cout<< "用手抓住冰箱门把手" <<endl;cout<< "缓慢打开门" <<endl;cout<< "拉到一定大的角度" <<endl;}void PushElephant(CElephant& ele){cout<< "找到冰箱的最大格子" <<endl;if(heightRefrig < ele.heightEle) {cout<< "压缩一下大象" <<endl;ele.heightEle = 5;}pEle = &ele;cout<< "大象放到冰箱里" <<endl;}void CloseRefrigerator() {cout << "开始推动冰箱门" << endl;cout << "继续推动冰箱门" << endl;cout << "冰箱门严丝合缝" << endl;}
};int main() {Refrigerator refrig(10);CElephant ele(10);//---------开始打开冰箱-------------------------refrig.OpenRefrigerator();//----------结束打开冰箱------------------------//----------开始装大象------------------------refrig.OpenRefrigerator();//----------结束装大象------------------------//----------开始关闭冰箱------------------------refrig.CloseRefrigerator();//----------结束关闭冰箱------------------------return 0;
}

结语

下期预告

下次我们准备用C++封装链表并且写一个马里奥移动的小练习

http://www.15wanjia.com/news/186098.html

相关文章:

  • 建站之星最新版本门户网站维护怎么做
  • 网站这么做404页面前端开发模板
  • 设计师必去十大网站淮南网络运营公司
  • 中国建设银行内部网站某企业电子商务网站建设
  • 玉溪网站建设现状网站云空间和普通空间
  • 公司网站备案要多久黄金网软件app大全下载
  • 苏州晶体公司网站建设可以推广的软件有哪些
  • 请人帮忙做网站推广打开云南省住房和城乡建设厅网站
  • 中国城乡住房建设厅网站首页高唐网页定制
  • 无锡网站制作厂家地址自己做网站开网店
  • 淘宝做网站的多少钱傻瓜式做网站
  • 网站seo优化外包顾问重庆免费网站制作
  • 东营网站建设设计西安的软件公司哪个比较厉害
  • 个人网站推广方案自己建设网站麻烦吗
  • 体育用品网站模板代理加盟网站建设公司
  • 如何注册域名并建设网站山西太原小店区最新消息
  • 集团企业网站模板石家庄品牌网站建设
  • 网站建设实训内容框架型网站
  • 地方网站收录深圳建立网站公司网站
  • 建站网站本地wordpress如何同步
  • 企业网站搜索推广wordpress appdev team
  • 网站点击率高浙江国泰建设集团有限公司网站
  • wordpress与saasseo教学
  • 做网站图片太大好吗一建建设网站
  • 电子商务网站建设成都北京软件开发公司排行
  • 内蒙古建设安全监督站的网站小语种建站
  • 北京做网站哪家专业推广做网站
  • 网站名百度搜不到南宁在百度上建网站
  • sq网站推广做网站后台搭建都用什么
  • 在自己的网站里做讲课视频房地产估价师