苦恼于Python运行时感人的速度,我决定学习C++。

为了激励我自己好好地学习这门未曾谋面的编程语言,我决定在此开设专栏:C++学习日记。希望在读者们的监督下,我可以早日掌握这门语言。当然,如果那位大佬愿意赐教,在下也是感激不尽。

2022年7月14日

由于懒得安装编译环境,我找了一个在线编程的网站。接着,我开始寻找教程学习C++(https://www.runoob.com上的教程还不错)。简介、环境设置(我都用在线编辑器了,自然是不需要环境设置的)懒得看,我便从《基本语法》一篇开始循着教程学习(顺带得有点实践,不是吗?)。

首先,是Python中从未谋面的头文件和命名空间:

#include <iostream>
using namespace std;

这能干什么,我真的看不太懂。但我想,既然C++每一个程序中都提及它们,那我们将其牢牢记下,在每个文件开头都照搬一遍似乎就可以。

C++第二个令我不适应之处在于,这里舍弃了缩进,而使用大括号表示语句块。并且,其每一语句结尾的分号也让我头疼。好在在Javascript中我已领教这一情况,因此总算没有激起太大波澜。

不得不说,C++的变量和函数令我感到头大。我们知道,Python的变量不需要指定类型,而在C++中,它需要提前定义,还要设置初始化!更有甚者,连函数的返回值竟也需要指定类型。再加上那看上去毫无意义的变量声明,以及各种复杂不说还带有修饰符的数据类型,我不尽一阵晕眩(还有存储类,那究竟有啥用啊)。

不过,舍弃那些晦涩难懂的用法,我总算是可以安然地设置一些我需要的变量了。

看到讲解运算符时,我不尽嘲笑教程的太过基础。直到……看到名为位运算符的一些操作。说实话,它们并不十分晦涩难懂,但令我置疑的是它的实用性。将一个数拆成二进制数,经过变换后重新转换回十进制——这个操作,我想都不敢想。通过拆解为二进制来解决问题,这根本不是正常能想到的思路。

循环和判断,这些基本的逻辑无疑是一个程序的支柱。也许由于兴趣,这是我今日学得最轻松的部分。这里的for,无疑与Python很不同,更加复杂,应用却更加广泛。do-while结构与goto语句也是给了我们更多发挥的空间——它们可以帮助我们更好地完成一些工作。而判断中的switch语句,也是让我眼前一亮:我曾数次在Python中用if-else来实现此判断,但显然,switch做得更快、更有效(但由于我对C++数据类型实在是使用不惯,还是传统if-else更适合目前的我使用)。

接着,我忍不住跳过大段的内容,转而去学习C++的输入和输出。我一直认为,输入输出乃是一个程序的灵魂,而C++的输入输出无疑是出类拔萃——至少令我满意。可以说,cout<<和cin>>即具有Python中print和input函数的简约(说是胜过Python也不为过),又有一种逻辑上层次分明的美感。

对于函数部分,我只粗略浏览,而匿名函数更是只字未动。这也许是由于这些内容过于繁复,但我认为更多的是海量的知识令我的兴趣渐渐磨灭。也罢,我便停下这第一天的学习,满满消化这些内容。我相信,明日,我将再次信心满满地踏上学习C++的征途。
第一期的C++学习日记到此要告一段落了。最后,一个小小的C++程序作为今日的成果:

#include <iostream>
using namespace std;
int main()
{
for(;;)
{
string digg = "是";
cout<<"您是否会点赞?(回答“是”就行啦!)"<< endl;
cin>>digg;
if(digg=="是")
{
cout<<"万分感谢!"<<endl;
break;
}
else
{
cout<<"请重新回答!"<<endl;
}
}
}

(持续更新中,敬请关注……)

C++学习日记:关于我决定开始学习C++的那些事的更多相关文章

  1. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  2. android学习日记05--Activity间的跳转Intent实现

    Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...

  3. android学习日记03--常用控件Dialog

    常用控件 9.Dialog 我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框 对话框,要创建对话框之前首先要创建Bui ...

  4. android学习日记03--常用控件checkbox/radiobutton

    常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...

  5. android学习日记03--常用控件button/imagebutton

    常用控件 控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者.方法则是控件的一些简单而可见的功能.所有控件都是继承View类 介绍android原生提供几种常用的控件bu ...

  6. Zend Framework学习日记(2)--HelloWorld篇(转)

    Zend Framework学习日记(2)--HelloWorld篇 这一篇主要演示如何用zf命令行工具建立一个基于Zend Framework框架的工程,也是我初学Zend Framework的小练 ...

  7. Zend Framework学习日记(1)--环境搭建篇(转)

    Zend Framework学习日记(1)--环境搭建篇 (1)开发工具 Zend Framework框架:http://framework.zend.com/download/latest 包含2个 ...

  8. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

  9. 配置ssh免密码登录——集群学习日记

    度过了难熬的考试月时期之后,最近和小伙伴一起参加的的比赛进入了紧张的准备时期.在进行工作的时候,发现有很多基础的知识点,自己不是很清楚以及了解,所以在想,要不就边学习的时候边写下学习日记,以供自己后来 ...

  10. Hadoop-2.7.2集群的搭建——集群学习日记

    前言 因为比赛的限制是使用Hadoop2.7.2,估在此文章下面的也是使用Hadoop2.7.2,具体下载地址为Hadoop2.7.2 开始的准备 目前在我的实验室上有三台Linux主机,因为需要参加 ...

随机推荐

  1. Dockerfile 中对常用命令详解

    说明 Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明. 在Dockerfile 中命令书写对先后顺序及表示其执行对顺序,在书写时需注意. 约定 命令不 ...

  2. 继承 & super & 方法覆盖

    简单继承 细节1: 细节2: 子类创建对象,先 父类构造器,后 子类的构造器,因为(默认的super) 细节3: 假设父类只有一个有参构造器,  此时需要子类用上super给定父类参数,才能通过编译 ...

  3. .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件

    系列目录     [已更新最新开发文章,点击查看详细] 在我的博客<.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件>中介绍了WinForm ...

  4. filter/backdrop-filter 毛玻璃效果

    对于方式二采用的方式,如果存在边缘模糊程度不够,可以设置扩大伪元素范围(margin: -20px),父元素超出裁剪(overflow: hidden). <!DOCTYPE html> ...

  5. 推荐一款数据mock框架,无需任何依赖,贼牛逼

    fox-mock 是基于Java Agent实现的自测,联调Mock利器.能解决你的这些问题: 开发过程中,依赖了下游多个接口,想跑个单测都必须得等下游把服务部署好 联调过程中,下游某个接口出问题,阻 ...

  6. .NET性能优化-为结构体数组使用StructLinq

    前言 本系列的主要目的是告诉大家在遇到性能问题时,有哪些方案可以去优化:并不是要求大家一开始就使用这些方案来提升性能. 在之前几篇文章中,有很多网友就有一些非此即彼的观念,在实际中,处处都是开发效率和 ...

  7. 手脱无名壳tslgame_rl

    1.使用Detect It Easy查壳,该壳未显示出壳信息,至于为何有壳,我们使用IDA打开,查看其的导入表,其中没有太多函数使用: 2.我们使用x32dbg打开,运行至入口点,此处没有pushad ...

  8. unity---点击事件

    点击事件 点击触发的事件脚本 脚本挂载方式 On Click() 如果点击后触发,调用Button物体下,Button_lick脚本中的func函数/func_text 结果

  9. 翻页组件page-flip调用问题

    翻页组件重新调用解决方案 翻页组件:page-flip import { PageFlip } from 'page-flip' pagefile() { //绘制翻页 this.pageFlip = ...

  10. springSecurity + jwt + redis 前后端分离用户认证和授权

    记录一下使用springSecurity搭建用户认证和授权的代码... 技术栈使用springSecurity + redis + JWT + mybatisPlus 部分代码来自:https://b ...