基本概念

对象:

面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体,每个对象都是由数据和操作代码两部分构成的。

类:

面向对象程序设计中,类是具有相同的数据和相同的操作的一组对象的集合,是对具有相同数据结构和相同操作的一类对象的描述。C++中类中数据称为数据成员,类中的操作是由函数实现的,这些函数被称为成员函数。

类与对象之间的关系是抽象与具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。

消息与方法:

面向对象程序设计中,对象之间的联系被称为对象的交互,面向对象程序设计技术必须提供一种机制允许一个对象与另一个对象的交互,这种机制叫消息传递,一个对象向另一个对象发出的请求称为“消息”。在面向对象程序设计中的消息传递实际上是对现实世界中消息传递的直接模拟。调用对象中的函数就是对该对象传递一个消息,要求该对象实现某种行为。对象所能实现的行为,在程序设计方法中称为方法,它们是通过调用相应的函数实现的,在C++语言中方法是通过成员函数实现的。

基本特征

抽象:

抽象是通过特定实例抽取共同性质后形成概念的过程。面向对象程序设计中的抽象包括两个方面:数据抽象和代码抽象(或称行为抽象)。前者描述某种对象的属性或状态,也就是此类对象区别于彼类对象的特征物理量,后者描述了某类对象的共同行为特征或具有的共同功能。在面向对象程序设计方法中,对一个具体问题的抽象分析的结果,是通过类的描述和实现的。

封装:

在面向对象程序设计中,封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐蔽对象的内部细节。面向对象的程序在使用一个对象时,只能通过对象与外界的操作接口来操作它,对象中的函数名就是对象的对外接口,外界可以通过函数名来调用这些函数名来实现某种行为。

继承:

继承所表达的是对象类之间相关的关系,继承机制允许派生类继承基类的数据和操作。也就是说,允许派生类使用基类的操作和数据,同时,派生类还可以增加新的操作和数据。从继承源上,继承分为单继承和多继承,单继承是指每一个派生类只直接继承了一个基类的特征,多继承是指多个基类派生出一个派生类的继承关系。

多态:

面向对象系统的多态性是指不同对象收到相同消息时执行不同的操作。C++语言允许两种多态性,及编译时的多态性和运行时的多态性。编译时的多态性是通过函数重载实现的,运行时的多态性是通过虚函数实现的。

C++面向对象程序设计学习笔记(1)的更多相关文章

  1. C++面向对象程序设计学习笔记(6)

    多态性 编译时的多态性与运行时的多态性 在面向对象方法中,所谓多态性就是不同对象收到相同信息时,产生不同的行为.在c++程序设计中,即"一个接口,多种方法" 在C++中,多态性的实 ...

  2. C++面向对象程序设计学习笔记(7)

    模板与异常处理 模板的概念 模板是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型作为参数. 模板分为函数模板和类模板,它们分别允许用户构造模板类和模板函数 函数模板与模板函数 函数模板实际 ...

  3. C++面向对象程序设计学习笔记(5)

    派生类与继承 概念 继承允许编程者在已有类的基础上创建新的类,可以从一个或者多个已有类中继承函数和数据,并重新定义或者添加新的函数和数据,已有类称为基类或父类,新类称为派生类和子类. 声明 声明一个派 ...

  4. C++面向对象程序设计学习笔记(4)

    类与对象(2) string类 C++不仅向下兼容C的字符表示方法,也声明了一种更方便的字符串类型,即string类. 想要使用string类,必须包括头文件string,即要声明 #include& ...

  5. C++面向对象程序设计学习笔记(3)

    类与对象(1) 结构体与类 结构体的扩充 C++对结构体进行了扩充,它不仅可以含有不同类型的数据,还可以含有函数,结构体的函数可以像访问结构体中的数据一样进行访问. 类的声明 声明类的方法与声明结构体 ...

  6. C++面向对象程序设计学习笔记(2)

    C++在非面向对象方面的扩充 C++向下兼容C语言,因此C语言中的语法在C++中依然成立 输入输出 C++添加了标准输入流对象cin和标准输出流对象cout来进行输入输出, 例: #include&l ...

  7. 20145213《Java程序设计学习笔记》第六周学习总结

    20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...

  8. Java程序设计学习笔记(一)

    时间:2015-6-2 23:04 程序员,程序猿,程序媛,码农 -------------------------------------------------------   --Java的应用 ...

  9. JavaScript高级程序设计---学习笔记(二)

    面向对象程序设计1.属性类型.定义多属性.读取属性特性对象的属性在创建时都带有一些特征值,JavaScript通过这些特征值来定义它们的行为.这些特性是为了实现JavaScript引擎用的,因此不能直 ...

随机推荐

  1. 24种设计模式-策略模式(Strategy Pattern)

    一.优点: 1. 策略模式提供了管理相关的算法族的办法.策略类的等级结构定义了一个算法或行为族.恰当使用继承可以把公共的代码转移到父类里面,从而避免重复的代码. 2. 策略模式提供了可以替换继承关系的 ...

  2. a 标签 pointer-events

    a 标签渲染到也页面之后,由于某些原因需要,禁用. 有两种方法可以设置禁用效果. 1.使用 CSS 属性 pointer-events ,设置此属性为 none 之后,元素将不会成为鼠标事件的 tar ...

  3. Ubuntu 安装git及git命令

    1.检查git是否已经安装,输入git version命令即可,如果没有显示版本号表示没有安装git 2.安装git sudo apt-get install git 3.配置git全局环境git c ...

  4. resharper 8.2

    用户名:ronle注册码:ZoJzmeVBoAv9Sskw76emgksMMFiLn4NM

  5. Vue.js 源码分析(十六) 指令篇 v-on指令详解

    可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码,例如: <!DOCTYPE html> <html lang="en"& ...

  6. 线代第六章定义&定理整理(持续更新中)

    Chapter 6 6.1 Inner Products and Norms Definition (inner product). Let V be a vector space over F. A ...

  7. J2EE的13种规范

    1.JDBC(Java Databaes Connectivity):JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题,同时,JDBC对数据 ...

  8. jmeter入门操作 = 接口

    1.没安装工具的朋友,不熟悉菜单插件使用的朋友,请先看:https://www.cnblogs.com/beile/p/11007754.html 2.开始调用http请求 测试地址:http://h ...

  9. Linux 配置程序包源 Nuget

    编辑文件NuGet.Config vi ~/.nuget/NuGet/NuGet.Config 新增源 <add key="fz" value="http://19 ...

  10. QUrl的使用,特别是对含特殊字符的字符串进行 URL 格式化编码

    QUrl提取与写入参数QUrl url("www.baidu.com?a=666&b=888"); url.addQueryItem("); qDebug()&l ...