当前位置: 首页 > 编程日记 > 正文

C++ Primer 读书笔记 (1)

我的《C++ Primer》扉页记着购书的日期和地点:C++ Primer 2009.11.28购于西区求索。那时对于这本厚书一直心怀敬畏,仿佛是眼前的一座大山。那时,虽然已经大四,但是对于面向对象的理解还很肤浅(相当肤浅),只能用C++编写一些简陋的C风格的结构化的程序。一晃快两年过去了,过去的时光放佛已经尘封于历史之中了,离自己已经遥远,但我知道自己现在唯有迎难前进,方能获得希望。但愿过去的时光可以让我学的更轻松,小小的期望,在购书两周年之际学完C++。

Chapter1

iostream库——istream类(输入流)和ostream类(输出流)

标准输入 cin

标准输出 cout

标准错误 cerr

输出操作符 << 表达式结果是左操作数的值

命名空间 std 作用于操作符 ::

控制结构:while 语句,for语句,if语句

C++设计的主要焦点就是使所定义的类类型的行为可以像内置类型一样自然。类定义行为。

成员函数,使用点操作符调用。

Chapter2

左值:可以出现在赋值语句的左边或右边

右值:只能出现在赋值语句的右边

对象:内存中具有类型的区域

变量:程序可以操作的有名字的存储区

变量名:变量的标识符

定义对象:类型说明符,变量名

初始化:直接初始化,赋值初始化

定义如何进行初始化的成员函数称为构造函数

定义:为变量分配存储空间,还可以指定初始值;定义同时也是声明。

声明:向程序表明变量的类型和名字,可以使用extern关键字声明变量而不定义它,只是说明变量定义在程序的其他地方。变量可以多次声明,只能定义一次。声明如果有初始化式,那么它可被当做定义。使用变量之前必须定义或者声明变量。

全局作用域,局部作用域,语句作用域
const对象,常量在定义后不能被修改,所以定义时必须初始化;除非显式的说明extern,全局作用域声明的const变量是定义该对象文件的局部变量,此变量只存在于该文件,不能被其他文件访问。
引用是复合类型,通过在变量前添加"&"符号来定义,复合类型是指用其他类型定义的类型。
int ival = 1024;
int &refVal = ival;
const引用是指向const对象的引用,可以读取但不能修改。const引用可以初始化为不同类型的对象或者初始化为右值,非const引用却不可以。原因比较微妙。
typedef
类类型:数据成员,成员函数使用class关键字成员函数默认private,使用struct则默认public
编写头文件:
头文件不应该含有定义,有三个例外;可以定义类、值在编译时已知道的const对象和inline对象。

相关文章:

招聘:兼职ASP 高级工程师

工作职责&#xff1a;1、负责ASP网站设计和页面制作&#xff1b;2、配合运营团队做客户服务支持&#xff1b;3、参与海洋工作室其他相关设计工作。 职位描述&#xff1a; 1. 要求有很强大ASP开发功底;2. SQL Server使用经验;3. 有与策划者和美工合作的习惯;4. 可独立开发&…

GitHub重大好消息:私有仓库可无限制免费创建

作者 | 一一 出品 | AI科技大本营 GitHub 被微软收购之后&#xff0c;第一次公布了有利于广大程序员的好消息。 1 月 8 日&#xff0c;GitHub 宣布无限制的免费为普通用户提供私有仓库服务&#xff0c;这给程序员每年省下了 84 美元。此前&#xff0c;企业要创建私有仓库进行代…

“AI下乡”:华为和袁隆平一起种海水稻,欲改造1亿亩良田

作者| 琥珀 出品| AI科技大本营我们总是无法忘怀“杂交水稻之父”袁隆平的名字&#xff0c;即便后来很多学者对他的成就有所争议。距今&#xff0c;三系杂交水稻的发现已经过去了 50 多年&#xff0c;袁隆平也近 90 岁高龄&#xff0c;但他依然活跃在农业生产一线。想必近日不少…

finecms设置伪静态后分享到微信不能访问怎么处理

finecms设置伪静态后分享到微信不能访问&#xff0c;分享的链接自动增加了一串参数&#xff0c;类似这样的***.html?fromsinglemessage&isappinstalled0&#xff0c;刚开始ytkah没注意&#xff0c;以为是微信屏蔽了不安全网址&#xff0c;后面在论坛上问了一下&#xff0c…

Access和SQL server开启表间关系,并实现更新或删除母表数据自动更新或删除子表数据...

1.Access开启表间关系,并实现删除母表数据自动删除子表数据: 在Tables等界面 - > 右键 - > Relationships... -> 弹出Relationships窗口 -> 选择需要关联的表 -> 双击Relationships窗口空白位置 -> 弹出 Edit Relationships 窗口 -> 就可以看到Enforce Re…

推荐并简要分析一个silverlight的相册DEMO--ImageSnipper(V2)

下面就是它的一些演示截图。 首先是缩放&#xff0c;旋转和透明处理&#xff1a;然后是文字水印处理&#xff1a;然后是使用Ink的涂鸭&#xff1a;相信做为一个相册&#xff08;图片浏览&#xff09;的基本功能已经没什么问题了。下面来看一下这个DEMO的类图&#xff…

Ruby之Tempfile

今天又机会尝试了下Ruby的Tempfile库&#xff0c;相比于自己创建临时文件再删除的方法简便了很多。 require tempfiletmp Tempfile.new("tmp")tmp.path # > /tmp/tmp20110928-12389-8yyc6w 不唯一tmp.write("This is a tempfile") tmp.rewind tmp.read…

快车 FlashGet 3.1 修正版(1057)

快车 FlashGet 3.1 修正版(1057) SM发布于 2009-06-25 23:43:23| 2326 次阅读 字体&#xff1a;大 小 打印预览感谢VxuE的投递快车(FlashGet)是互联网上最流行,使用人数最多的一款下载软件.采用多服务器超线程技术、全面支持多种协议,具有优秀的文件管理功能.快车是绿色软件,无…

Python模拟微博登陆,亲测有效!

作者 l 上海小胖 来源 l Python专栏&#xff08;ID&#xff1a;xpchuiit&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;pythonzhuanlan&#xff09;今天想做一个微博爬个人页面的工具&#xff0c;满足一些不可告人的秘密。那么首先就要做那件必做之事&#xff01…

Ruby调用shell命令

原来发在diandian的几篇旧闻&#xff0c;也一并转到iteye上来吧。 1. exec exec echo "hello $HOSTNAME" 用echo命令来取代当前进程&#xff0c;无法知道命令是否成功 2. system system(echo "hello $HOSTNAME") 运行一个子shell来避免覆盖当前进程&a…

mac os下valgrind的安装

valgrind是一款性能分析工具&#xff0c;功能强大。 在mac os下的安装略有不同&#xff0c;特写此文以记之。 现在最新的版本是3.8.1 tar jxvf valgrind-3.8.1.tar.bz2 cd valgrind-3.8.1 ./configure sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer m…

Google Voice开始发送邀请函

今天收到了Google Voice的邀请函&#xff0c;标题为“Youve been invited to Google Voice”。最近关于Google Voice 的新闻不少&#xff0c;出于好奇登录http://www.google.com/voice 递交了申请&#xff0c;没有想到这么快得到了邀请函。邮件特别强调“ Please note that Goo…

Python开发(基础):字符串

字符串常用方法说明 #!/usr/bin/env python # -*- coding:utf-8 -*- # class str(basestring): # """ # str(object) -> string # # Return a nice string representation of the object. # If the argument is a string, the return value …

Linux与Windows文件共享命令 rz,sz

一般来说&#xff0c;linux服务器大多是通过ssh客户端来进行远程的登陆和管理的&#xff0c;使用ssh登陆linux主机以后&#xff0c;如何能够快速的和本地机器进行文件的交互呢&#xff0c;也就是上传和下载文件到服务器和本地&#xff1b; 与ssh有关的两个命令可以提供很方便的…

Python爬虫小偏方:如何用robots.txt快速抓取网站?

作者 | 王平&#xff0c;一个IT老码农&#xff0c;写Python十年有余&#xff0c;喜欢分享通过爬虫技术挣钱和Python开发经验。来源 | 猿人学Python在我抓取网站遇到瓶颈&#xff0c;想剑走偏锋去解决时&#xff0c;常常会先去看下该网站的robots.txt文件&#xff0c;有时会给你…

八百客与51CTO结了梁子?

转载于:https://blog.51cto.com/simon/171348

特斯拉“撞死”机器人,是炒作还是事故?

作者 | 若名出品 | AI科技大本营科幻片里机器人大战的剧情可能离人类还很遥远&#xff0c;但设想一下&#xff0c;现实中机器人不受控制的打起架来...1 月 6 日&#xff0c;一辆处于自动驾驶模式的特斯拉 Model S “撞死”了一辆掉队 Promobot 的机器人。本次撞击事件发生在当地…

网页解析:如何获得网页源码中嵌套的标签。

一&#xff1a;前言&#xff1a;网页源码中有很多嵌套的标签 例如div标签嵌套如&#xff1a;bUTP<DIV>finally<div>aurora</div>126.com</div><div class\"Cited1\">ggff</div> 我们的网页解析工作中有时候需要解嵌套。通俗的讲…

36.intellij idea 如何一键清除所有断点

转自&#xff1a;https://www.cnblogs.com/austinspark-jessylu/p/7799212.html 1.在idea左下方找到"View Breakpoints"按钮,点击打开. 2.点击"Java Line Breakpoints"前方的全选框,取消全选. 3.点击上方"-"即"Remove"按钮,即可取消所…

Ruby与vim

介绍一点vim下使用Ruby的技巧。 1. vim命令行模式下输入 !ruby % 可以直接运行Ruby程序&#xff0c;并返回到vim编辑 2. vim Ruby关键字及自定义变量补全 拷贝附录中的ruby-macros.vim至机器某处&#xff0c;然后修改~/.vimrc&#xff0c;添加一行&#xff1a; source ROOT(…

NLP技术落地为何这么难?里面有哪些坑?

AI 很火&#xff0c;但是 AI 的门槛也很高&#xff0c;普通的开发者想要搭上这波 AI 红利依然困难。近期&#xff0c;人工智能公司推出了新一代智能 Bot 开放平台&#xff0c;它整合了小i机器人 Chatting Bot、FAQ Bot、Discovery Bot 三大核心能力&#xff0c;为企业和开发者提…

开源工具之valgrind

首先对源文件进行编译&#xff1a;Preparing your programCompile your program with -g to include debugging information so that Memchecks error messages include exact line numbers.-O0 a good idea if you can tolerate the slowdown-O1 line number in error message…

存储过程定义语法

CREATE PROCEDURE addTicket(in vipsql VARCHAR(255),in ordersql VARCHAR(255),in detailkey varchar(255),in detailsql VARCHAR(255)) comment 挂单&#xff08;售药窗口&#xff09; BEGIN DECLARE CONTINUE HANDLER FOR SQLEXCEPTION ,NOT FOUND rollback; start transac…

.NET : 针对Oracle的LOB数据访问

参考资料&#xff1a;来自Oracle官方网站 在 .NET 中使用 Oracle 数据库事务作者&#xff1a;Jason Price http://www.oracle.com/technology/global/cn/pub/articles/price_dbtrans_dotnet.html 在 .NET 中使用大对象作者&#xff1a;Jason Price http://www.oracle.com/techn…

MySQL数据类型--------浮点类型实战

1. 背景 * MySQL支持的浮点类型中有单精度类型(float), 双精度类型(double)&#xff0c;和高精度类型(decimal)&#xff0c;在数字货币类型中推荐使用高精度类型(decimal)来进行应用. * MySQL浮点型和定点型可以用类型名称后加&#xff08;M&#xff0c;D&#xff09;来表示&am…

山寨上网本溃败的两点教训

不是马后炮。08年11月份&#xff0c;笔者写过一篇《上网本难以复制山寨机的辉煌》&#xff08;以下简称《辉煌》&#xff09;&#xff0c;从消费取向和价格两个方面着手&#xff0c;分析认为山寨上网本市场有限&#xff0c;难以复制山寨手机的市场奇迹。现在看来&#xff0c;笔…

分享一个expect的脚本

分享一个expect的脚本&#xff0c;可以用于Linux机器之间远程执行命令&#xff1a; #!/usr/bin/expect -fset ipaddress [lindex $argv 0] set user [lindex $argv 1] set passwd [lindex $argv 2] set cmd [lindex $argv 3] set timeout [lindex $argv 4]spawn -noecho ssh $u…

今晚直播 | 深入浅出理解A3C强化学习

强化学习是一种比较传统的人工智能手段&#xff0c;在近年来随着深度学习的发展&#xff0c;强化学习和深度学习逐渐结合在了一起。这种结合使得很多原来无法想象的工作有了可能&#xff0c;最令我们瞩目的莫过于AlphaGo战胜李世石&#xff0c;以及OpenAI团队的机器人可以在团战…

正则表达式口诀及教程(推荐)

正则其实也势利&#xff0c;削尖头来把钱揣&#xff1b; &#xff08;指开始符号^和结尾符号$&#xff09;特殊符号认不了&#xff0c;弄个倒杠来引路&#xff1b; &#xff08;指\. \*等特殊符号&#xff09;倒杠后面跟小w&#xff0c; 数字字母来表示&#xff1b; &#xff0…

ssh其他机器的Expect脚本

ssh登陆其他机器的Expect脚本 #!/usr/bin/expect -fset user [lindex $argv 0] set ipaddr [lindex $argv 1] set passwd [lindex $argv 2]spawn ssh -l $user $ipaddrexpect "password:" send "$passwd\r" interact或者&#xff1a; #!/usr/bin/expect -f…