既然是C++,比C语言多了最重要的概念:面向对象。

面向对象?对象是什么?Girlfriend? 我天天面向她也没学会C++。

我觉得对象就是有统一特征的一类编程目标。

打个比方说墙上有个开关,我一按,天花板上的灯亮了。

这个开关就是我要面向的对象,我要把这开关前面的样子和后面的内容设计出来,设计好之后批量生产,功能是一样的。

别人要让这个灯亮,买个开关来安上就行,不用重新再设计生产。

类似的灯泡也是对象,输入合适的电流它能亮,断掉电流就不亮,再输入再亮。

电脑的作用就是模拟现实世界,所以表达这个电路操作也是用编程模拟,设计虚拟的开关和灯泡这两个对象,再把它们的相互关系连接起来。

下面我们再举例来建立一个类来说明。

class Box

{ public:

double length; // 盒子的长度

double breadth; // 盒子的宽度

double height; // 盒子的高度

};

上面我们建立了一个名字叫Box的类,它有三个公共数据成员:长、宽、高;

这种公共数据成员用“public:”来声明,可以被别的程序引用。将来我们还会碰到与之相对应的私有和保护成员。

我们看到声明类的格式与前面学到的函数的声明有类似之处,也有大括号,但没有形参,最前面的数据类型用“class”代替了。

是的,程序把函数和类都看成是一个对象,只是内涵要看后面具体去不同地执行。

但是建立了这个类有什么用?我们要再用函数来引用它。

我们用一个计算两个立方体的体积的例子来说明:

前面两行是程序头文件,说来话长,我们先不管它。

然后是前面说过的Box类的声明,继续往下;

后面是一个名字叫main的主函数,数据类型是整数,没有形参,后面大括号包起的部分就是函数的功能。主函数都是这样的,其他功能包含在主函数内部。

Box Box1 什么意思?

前面不是声明了Box类吗,这里就算引用了,再声明一个Box1,它就是一个Box,它的种类是Box,包含Box的全部三个特性,但它是Box里特指的一个。

Box2是类似的。

还声明了变量:volumn体积,初始值为0,Double是一种数值可以很大的小数,可以容纳很大的体积数值。

下面:

Box1.Height=5.0;

把Box1的高设成5.0;

这不是声明了,因为Box1和Height都已经声明过了,这是赋值;

小数点“.”你可以直接读成“的”,因为它就表示后面的从属于前面。

volume = Box1.height * Box1.length * Box1.breadth;

体积等于Box1的高、长和宽的乘积

这也是赋值,将一个表达式赋给一个变量。

cout << "Box1 的体积:" << volume <<endl;

cout <<把后面的内容输出到屏幕; "Box1 的体积:" 双引号扩起的部分表示是字符串文本;volume是变量,因此程序就会求出它现在的值显示出来;endl结束此行并换行,让下次输出的值从下一行开始使输出易读。

return 0;返回0;

这个返回值并不显示,而是回应函数头的int整数数据类型。

最后以大括号结束。

Box2也同理。

但编程语言的思路和实际程序设计的思路还是相反的,倒过来看才能明白主干。

这个例子中,我们想要实现的目的是:输出立方体的体积,

所以最后的语句是要输出的内容;

输出内容有一个体积变量需要声明,声明它的名称、数据类型、求解方法。

求解方法引出立方体Box、长、宽、高。长、宽、高都是立方体Box的属性,因此定义一个Box类,包含这三个属性;

再分别装入两个Box的数据,就可以了。

从这个例子我们学习了建立类和对象的基本概念,不过我们还看不太出带来的效率提升,随着程序规模的扩大,它的优势才会逐渐显现。

C++自学第二课:对象和类的概念的更多相关文章

  1. JAVA基础复习与总结<一> 对象与类的概念_内部类_继承与多态

    一.对象与类 类:类是一个模版,它描述了一类对象的行为和状态. class animal { private int color; private int size; public void eat ...

  2. MVC自学第二课

    鉴赏一个软件开发框架最好的办法是投入其中并使用它.本课将使用ASP.NET MVC框架创建一个简单的数据录入应用程序.为简化起见,本课涉及到的一些技术细节在这里可能会跳过,会在以后的课程中再详细说明. ...

  3. Java第二章----对象和类

    从第一章到第二章整整隔了一个月的时间,这速度也是慢的无语了.因为这个月负责开发公司一个SaaS类型APP,忙的昏天暗地终于上线了,这才有时间写个博客.本章还是以概念为主,有点枯燥重在理解. 第一节:对 ...

  4. 微信小程序自学第二课:app及页面的生命周期、使用setData绑定数据

    一.App声明周期 1.App() app.js中的App() 函数用来注册一个小程序.接受一个 object 参数,其指定小程序的生命周期函数等. 示例代码: App({ onLaunch: fun ...

  5. python编程思想及对象与类

    目录 编程思想 面向对象 面向过程 对象与类的概念 对象与类的创建 对象的实例化方法-独有数据 编程思想 1.面向对象 1.1. 面向对象前戏 案例:人狗大战 # 需求:人狗大战# 1.'创造'出人和 ...

  6. 孤荷凌寒自学python第二十三天python类的封装

    孤荷凌寒自学python第二十三天python类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...

  7. 《疯狂Java:突破程序员基本功的16课》读书笔记-第二章 对象与内存控制

    Java内存管理分为两个方面:内存分配和内存回收.这里的内存分配特指创建Java对象时JVM为该对象在堆内存中所分配的内存空间.内存回收指的是当该Java对象失去引用,变成垃圾时,JVM的垃圾回收机制 ...

  8. 快乐编程大本营【java语言训练班】 6课:用java的对象和类编程

    快乐编程大本营[java语言训练班] 6课:用java的对象和类编程 第1节. 什么是对象和类 第2节. 对象的属性和方法 第3节. 类的继承 第4节. 使用举例:创建类,定义方法,定义属性 第5节. ...

  9. Objective-C面向对象-对象和类

    文章都是先由本人个人博客:孙占兴:www.teilim.com,先更新,随后CSDN博客才会更新,掌握第一动态请关注本人主站. 原文链接:http://www.teilim.com/objective ...

随机推荐

  1. javascrict中innerhtml和innerText的关系

    1.time.innerHTML 就是id为time的标签中所有包含的代码内容 比如 <div id='time'><a href='#'>time</a>< ...

  2. PHP整数转小数

    sprintf('%.2f',$memrow['yjrebate1']+$memrow['yjrebate2'])

  3. Springboot中使用ibatis输出日志

    logging.level.org.apache.ibatis=DEBUG logging.level.org.mybatis=DEBUG logging.level.java.sql.Connect ...

  4. linux、SMART、Shell的学习

    Linux指令 useradd 添加用户 添加用户 -d 添加用户路径 -e 制定密码有效时间 -G -g 指定用户所属组 -c 指定一段用户描述 -s Shell文件指定用户的登录Shell -u ...

  5. 将Windows 7安装到移动固态硬盘(U盘)

    由于工作的原因,有时需要用两台电脑工作,而搞开发的人大多又是追求计算机性能的人,所以笔记本电脑自然不轻,更何况两台. 两台电脑折磨我半年多,终于下定决心将个系统安装到移动固态硬盘中,背一台无硬盘电脑加 ...

  6. 大数据学习之Hadoop运行模式

    一.Hadoop运行模式 (1)本地模式(默认模式): 不需要启用单独进程,直接可以运行,测试和开发时使用. (2)伪分布式模式: 等同于完全分布式,只有一个节点. (3)完全分布式模式: 多个节点一 ...

  7. python 将歌词解析封装成类,要求:提供一个方法(根据时间返回歌词) - 提示:封装两个类:歌词类、歌词管理类

    自己写的 有更好方案的大佬可以讨论一下 import bisectclass Lrc(): def __init__(self, sec, lrc): self.sec = sec self.lrc ...

  8. ZooKeeper典型使用场景一览

    场景类别 典型场景描述(ZK特性,使用方法) 应用中的具体使用 数据发布与订阅 发布与订阅即所谓的配置管理,顾名思义就是将数据发布到zk节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新 ...

  9. Linux入门第二天——基本命令入门(下)

    一.帮助命令 1.帮助命令:man (是manual手册的缩写,男人无所不能,/笑哭) 更多man用法以及man page的用法,参见:http://www.linuxidc.com/Linux/20 ...

  10. 安装虚拟机和Linux系统的学习

    安装虚拟机和Linux系统的学习(随笔3) 1.安装虚拟机 首先我按着老师给的链接上的步骤一步一步安装VirtualBox,进行得十分顺利. 接着则是在虚拟机上安装Ubuntu. 然而安装完成以后按要 ...