经典中的品味:第二章 C++基本的对象,类型和值(上)
上一章,我们大谈了Hello,World的一生。下面我们细细品味基础中的一些,从一个简单的案例开始,了解对象,类型等概念。我喜欢解释例子,让大家听着有味,不枯燥~
2.1 一个简单问候的例子最常见的就是keyBorad input(键盘输入)。从HelloWorldd的输出,我们也想得到用户的输入。通常,实行中的程序会给它的输入产生输出。例如,输入你的名字,输出
一句问候。有时候它就在身边,像我最爱的苹果手机一样。人机交互就是那么简单~
图2.1.1 人机交互(.net)
回到技术点,为了读取用户输入的数据,我们需要在计算机内存中某个地方放置读取所需的内容。这就是对象(Class)。对象是什么,对象时一个某种类型的内存区域。其中类型则确定了对象的信息。而一个有名字的对象,称为该对象的实例(也叫变量)。做个比喻,一看到对象大家想到的就是人,但这里人类才相当于对象。如果想到具体到你的对象,那是变量。
下面我们看下一个简单问候的例子:
从代码中我们可以看出,这个程序很简单。当你输入你的名字,比如我的 “Jeff_Lee”。输出如下:
图2.1.2 显示问候程序界面
值得注意的是我的fisrt name 和 last name 不能和空格隔开。原因很简单:
cin 该操作符是根据后面变量的类型读取数据。输入结束条件 :遇到Enter、Space、Tab键。剖析下刚刚那小程序(坚信:小程序也有学习地方):
这个会保存一个字符串的内存区域,并将这个区域命名为your_name。意义在于计算机为这个变量分配内存空间。如图所示:
图2.1.3 内存分析
下面一句上面也讲过,它会将根据变量类型,让那个内存存入对象的值。本来上面空的内存区域则有了数据。如图:
图2.1.4 内存分析
2.2 变量及类型正如我们上面所说,计算机内存存储数据的位置称为对象。我们需要用一个名字来访问,从而是这个对象成为变量。变量则有她特定的类型。基本类型罗列如下:
如果你尝试输入“ Jeff Lee 21”,按下回车键。你会很惊讶~,为什么不是出现 “Jeff Lee is 21 years old.”而是
图2.2 有趣例子的显示
这里我们关注的有两点,再次再次强调 cin 该操作符是根据后面变量的类型读取数据。输入结束条件 :遇到Enter、Space、Tab键。其次,string型的“Lee”不会被int型age所读取。这是很属虎的将是随机数。为什么?因为age没有被初始化,当你执行的时候,会得到内存中某部分的垃圾值。比如上面的 -858993460.你可以想想,如果再次运行下上面的程序,输入一样的话,age会变~
操作符 相关资料:http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/2.3 运算
运算,何为运算?运算的本质其实是集合的映射。最初的程序基本都是为了运算诞生的。这小块就仿佛来到了我们喜欢的数学领域。
图 2.3 早期计算机
但是,很多想数学细节情况要记住。比如:
在你看来是荒唐的,在它那里确实正确的。
所以,运算要我们去符合编译器规则,结合问题定义自己规则。
(这是第二章 上等下篇文章一起出来再总结。)
【C++要笑着学】STL Array | 非类型模板参数 | 模板的特化 | 全特化与半特化 | 模板的优缺点 我们之前讲过C++的模板,考虑到当时还没有将 STL,所以并没有一次性讲完,我们把剩余的部分放到了讲完部分 STL 容器的后面去讲,这样比较方去讲解。比如我们本章我们会通过 STL 的 array 去讲解非类型模板参数。本章还会重点讲解模板的特化,最后简单的探讨一下C++引入模板的优缺点。
【C++要笑着学】迭代器适配器 | 内嵌类型实现反向迭代器 | 迭代器萃取 上一章讲解 list 模拟实现时,我们简单的提到了反向迭代器,我们说反向迭代器其实就是对正向迭代器的一种封装 —— 适配器模式(配接器模式)。当时我们做的是简单的了解,本章我们就来探讨这一部分的知识。
二哥聊RPA 公号「二哥聊RPA」。关注我,一起洞察 RPA ◎ RPA创业者 ◎ 现明堂红木商业顾问,为十月结晶、可啦啦、鑫蜂维等多家企业提供 RPA 咨询服务 ◎ 希望帮助大家在 RPA 上做一些力所能及的事情
相关文章
- 经典中的品味:第一章 C++的Hello,World!
- 经典中的品味:第二章 C++基本的对象,类型和值(上)
- C/C++中的经典排序算法总结
- Linux C++开发环境搭建
- Open3D(C++) AlphaShape 平面点云边界提取
- Algorithm:C++语言实现之内排序、外排序相关算法(插入排序 、锦标赛排序、归并排序)
- 【华为云实战开发】10.经典的C++项目怎么在云端开发?
- 解答私信@被c++折磨头秃的花季美少女 //C++ 利用指针数组输入10个单词,编写函数对10个单词进行排序并输出,要求判断是否有相同的单词,如果有相同的单词在输出时该单词只输出一次。
- 解答私信@被c++折磨头秃的花季美少女 //C++ 编写一个进阶版的进制转换程序,运行功能如下:请选择要输入的数字的进制(2、8、10、16):请输入该数字:请选择要转换成的进制(2、8。。。
- 解答私信@被c++折磨头秃的花季美少女 //C++ 写一个带命令行参数的程序,可以实现将参数求和、求平均值以及排序之后输出(参数的数量不确定)。
- 复习C++标准库多线程的基本使用
- Effective C++ 24,25
- c++程序猿经典面试题
- C++ cast static_cast、dynamic_cast、const_cast和reinterpret_cast(四种类型转换运算符) 强烈推荐
- c++ vector C++ vector存放结构体 并且排序
- C++ string与基本类型转换(二十)
- C++软件异常分析与排查的学习历程
- C++函数值返回拷贝问题+RVO和NRVO【待学习】
- C++技能重拾
- 【C/C++】C/C++中的内存四区
- C/C++经典面试题一
- 基于C++的Winograd卷积实现(分片+乒乓)