C++-类和对象

任何一个对象都应该具有两个要素:属性、行为

面向对象的程序设计一个重要的特点是封装性,所谓封装指的是:

  1. 将有关数据和操作代码封装在一个对象中,形成一个基本单位,各个对象相互独立,互不影响
  2. 将对象中某些部分对外隐蔽,只留下少量接口与外界联系
C++中对象的函数名就是对象的对外接口,外界可以通过函数名来调用这些函数来实现某些功能

类是对象的抽象,而对象是类的特例。

多态性:如果有几个相似而不完全相同的对象,又是要求在向它们发出同一个消息时,它们的反应各不相同,分别执行不同的操作。这种情况就是多态现象。

C++中,所谓多态性是指:由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应。

面向过程的程序设计:程序=算法+数据结构

面向对象的程序设计:对象=算法+数据结构; 程序=对象s+消息


面向对象的软件设计开发:

  1. 面向对象分析(object oriented  analysis,OOA)
  2. 面向对象设计(object oriented design,OOD)
  3. 面向对象编程(object oriented programming,OOP)
  4. 面向对象测试(object oriented test,OOT)
  5. 面向对象维护(object oriented soft maintenance,OOSM)

类是抽象的,不占用内存空间,对象是具体的,占用存储空间。

如果在类的定义中既不指定private,也不指定public,则系统默认是私有的。

private和public称为成员访问限定符。除了private和public外,还有一种成员访问限定符protected,用protected声明的成员称为受保护的成员,不能被类外访问,但可以被派生类的成员函数访问。

用struct声明的结构体类,如果不对其成员作private和public声明,系统默认为public。


成员函数可以访问本类中任何成员(包括私有的和公用的),可以引用在本作用域有效的数据。

有的函数不准备为外界调用,而是本类中的成员函数调用,就应该指定为private,这类函数是为了支持其他函数的操作,是类中的工具函数。类外用户不能调用这些私有的工具函数。

可以在类体中只写成员函数声明,而在类外进行函数定义。

成员函数在类外定义时,必须在函数名前面加上类名,:: 是作用域限定符也叫作用域运算符,用它声明函数是哪个类的。

如果作用域运算符前面没有类名,或函数名前面既无类名也无作用域运算符(::display()或display),表示这个函数不属于任何类,不是成员函数,而是全局函数。

类函数在类体中作原型声明,在类外定义,类体的位置要在函数定义之前,否则编译出错。


C++要求对一般的内置函数要用关键字inline声明,但对类内定义的成员函数可以省略inline。

为了减少时间开销,如果在类体中定义的成员函数中不包括循环等控制结构,C++会将它们作为内置函数来处理;C++要求对一般的内置函数要用inline声明,但是类内定义的成员函数可以省略inline。

如果在类体外定义,系统并不把它作为内置函数,如果想将这些成员函数指定为内置函数,需要用inline显式声明。



每个对象所占用的存储空间只是该对象的数据部分所占用的存储空间,而不包括函数代码所占用的空间。(函数代码公用)

this指针,用来指向不同的对象。

访问对象的成员有3种方法:

  1. 通过对象名和成员运算符
  2. 通过指向对象的指针
  3. 通过对象的引用变量

在一个类中应至少有一个公用的成员函数,作为对外的接口,否则就无法对对象进行任何操作。

实际工作中,并不是将一个类声明做成一个头文件,而是将若干个常用的功能相近的类声明集中在一起,形成类库。

类库有两种:

  1. 一种是C++编译系统提供的标准类库;
  2. 另一种是用户根据自己的需要做成的用户类库,称为自定义类库

类库的组成部分:

  1. 类声明头文件
  2. 已经编译过的成员函数的定义,它是目标文件


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值