栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++面向对象编程

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++面向对象编程

1、面向对象 1.1、基本概念

        1、面向对象的基本概念:

        对象的概念是面向对象技术的核心所在。

        面向对象技术中的对象就是现实世界中,某个具体的物理实体在计算机世界(逻辑)中的映射和体现。也就说计算机中的对象,是模拟现实世界中的实体。

        举个例子:int是一个类型,我们可以去设计一个类型,通过这个类型,我们可以实例化产生一个具体的实例,比如int 一个变量a,我们可以对变量a进行赋值。那我们面向对象设计程序就是要设计、实例化产生一个具体的实例来供我们进行操作

        

        2、总结:

        抽象类别:概念是由实体通过抽象、分析而得到的

        类:是由主观、概念世界设计而来

        对象:是由类的实例化产生而来


       

        3、状态和行为是对象的主要属性
        1.对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。每个对象个体都有自己专有的内部变量,这些变量的值标明了对象所处的状态。
        2.对象的方法(行为)一方面把对象的内部变量包裹,封装,保护起来,使得只有对象自己的方法才能操作对象内部变量,另一方面,对象的方法还是对象与外部环境和其他对象交互,通信的接口,其他对象或外部环境可以通过这个接口来调用对象的方法,操纵对象的行为和改变对象的状态。

        成员变量是对象的属性(可以是变量,指针,数组等),属性的值确定对象的状态。(比如我们的对象张磊同学:他有100块钱,我们将钱借出来之后,他的财富值就是0,他的状态就会从有钱人变成穷人)

        成员函数是对象的方法,确定对象的行为。(借钱的时候,他有数钱、取钱等等方法、行为)

1.2、类型设计和实例化对象:

        1、c++类的设计

        

         

        2、访问性说的是对象。我们能从外部访问这个类所产生的对象的公有成员(public),不能从外部访问私有和保护行成员private、protected

        

        3、一般情况,将我们的方法都设计成公有,将属性设计成私有。类就是属性和方法的集合,最终我们可以通过调用公有的方法来改变对象私有的属性。公有函数集定义了类的接口

        

——————————————————————————————————————————————————————————————————————————————————————

2、this指针 2.1、this指针特点

        引入this的根本目的:节省空间(时间换空间),因为各对象独立的安排内存的时候,他们有各自的数据区(属性)和代码区(方法),这样类产生多个对象的时候,就会占用很大的内存空间。但是我们知道,同类型的对象,它们的属性各不相同,但是方法都是一样的,所以可以采用各对象代码区共用的方案,这个时候就用到this指针

        

        只在函数调用的过程中存在,函数调用结束,this指针就不再存在了

        形参 Cgood * const this,this指针自身为常性

2.2、编译器针对程序员自己设计的类型分三次编译

        1、扫描属性,放入描述表

        2、识别和记录类体中函数原型(返回类型+函数名+参数列表),形参的默认值,访问限定。不识别函数体

        3、改写类的成员函数,每一个都要改写,加入this指针。

2.3、构造函数

        构造函数定义

        数据成员多为私有的,要对它们进行初始化,必须用一个公有函数来进行。同时这个函数应该在,且仅在定义对象时自动执行一次。称为构造函数(constructor)
 

        构造函数用途:

        1)创建对象;2)初始化对象中的属性;3)类型转换。

        C/C++最大的区别:

        对于C语言,有内存空间即可操作(可读可写)

        

         C++中,有空间不一定可以操作,需要构造函数创建对象。C++的函数中,有空间,不一定有对象;有对象,一定有空间。

        空类型对象,也要占一个字节存在地址

        

        构造函数的重载

        

        构造函数的定义与使用
        构造函数是特殊的公有成员函数(在特殊用途中构造函数的访问限定可以定义成私有或保护),其特征如下:
        1.函数名与类名相同。
        ⒉.构造函数无函数返回类型说明。注意是没有而不是void,即什么也不写,也不可写void。实际上构造函数有返回值,返回的就是构造函数所创建的对象。
        3.在程序运行时,当新的对象被建立,该对象所属的类构造函数自动被调用,在该对象生存期中也只调用这一次。
        4.构造函数可以重载。严格地讲,类中可以定义多个构造函数,它们由不同的参数表区分,系统在自动调用时按─般函数重载的规则选一个执行。
        5.构造函数可以在类中定义,也可以在类中声明,在类外定义。
        6.如果类说明中没有给出构造函数,则C++编译器自动给出一个缺省的构造函数:类名(void){ }。但只要我们定义了一个构造函数,系统就不会自动生成缺省的构造函数。只要构造函数是无参的或者只要各参数均有缺省值的,C++编译器都认为是缺省的构造函数,并且缺省的构造函数只能有一个。

        问题:成员函数,为什么用this指针,而不是用引用?????


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923893.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号