如何开始学C++

初学者必备:C++经典入门详细教程 下面的是学C++时要注意的。  1.把C++当成一门新的语言学习(和C没啥关系!真的。);  2.看《Thinking In C++》,不要看《C++变成死相》;  3.看《The C++ Programming Language》和《Inside The C++ Object  Model》,不要因为他们很难而我们自己是初学者所以就不看;  4.不要被VC、BCB、BC、MC、TC等词汇所迷惑— 阅读详情

自学C++,几乎一大半人会说红宝书《C++ primer》,剩下的人中又有一大半会说《C++ 编程思想》

嗯,从我个人学习角度看,初学者特别是如果有C经验者,看《C++ primer》并不合适,说实话,我更愿意将它作为参考手册。

因为其特点就是举例丰富,论述详尽,内容厚实,看了后面忘了前面。真的太厚了,初学者往往淹没在其中,没办法抓住要点。

 

《C++编程思想》是分3卷,好像总共是两册。卷一不太清楚,先接触的是卷二,卷三(反正就是下册),卷二有点难,绝对不适合初学者。卷一接触的时候对C++已经比较了解了(看过Scott的三本经典著作2遍,更早的其他的一些启蒙书,较难的Modern C++ Design,还包括下面要讲的一些书),所以基本只是大概了解了一番,感觉和C++老大写的那本书比较接近,不过我看着C++老大写的那本书还比较好,内容不太多,有很多可以略过,但是对一些为什么不允许某个语法或者要创造这么个语法,等等之类的问题有很好的诠释。所以相对来说那本书,我也不太推荐。

 

如果纯粹是初学者,一点编程的经验也没有,那么我建议不要自学,还是先参加正式的课堂学习吧。

 

如果你有编程基础,比如是C(如果是其他的面向对象编程经验的,那就酌情略过),那么可以先找一本最薄的C++书看一遍,一般会涉及以下内容:

1. 函数重载和运算符重载   我想只要有程序概念的,对这种东西很好理解。(Ps,但实际不太好恰当的应用)

2. 一个带类的C,主要就是访问修饰符,public,private,protected。一看就明白。

3. 类的标准函数,构造函数,析构函数,拷贝构造函数和复制构造函数,主要是它们的作用和什么情况下需要自己写这些标准函数,这是一个难点,即使有其他面向对象语言经验的人,也往往会在这里卡一下。不过不妨暂时轻松走过好了,反正总有一天会重重摔在这里,重新审视这里的内容的,当然能那是你就又上一个档次了。

4. 接下来就是类的继承,首先是继承属性,public,private,protected,简单,就是名词解释。其次是单继承,也很简单,记住哪些数据可以继承,哪些函数可以继承,哪些函数不但可以继承而且可以重定义(这样的函数实际上应该叫接口)。做到这些就够了。

5. 最后,就是泛型编程了,模板。特点是句法复杂,名词特多。但是你只要能够认出怎样的代码是模板,通常标记是template<>,这样就够了,如果你能够区分实例化,特化,等等这些概念,那么说明你的理解力相当高,应该做自然科学比较好。

6. 此外,还有一些杂项,比如输入输出,只要会cout,cin,不需要会格式输出。文件输入输出也一样。名字空间的内容,实际跟类的有点相似,如果你对作用域的概念比较清楚的话,相信这些都是直接走个过场就可以马上理解了。

 

 

ok,在你了解上面的基础知识之后,(一般说来,不会超过21天)。如果还有不懂的,也不管了。接下来我要正式推荐一本书,薄薄的一本书《C++必知必会》。作者按条款列举了一些常见的内容,也是我们看完一边《C++primer》却完全没有印象的内容,而这些内容,恰恰是在C++编程中最经常用到的知识点,或者最常误解的内容。这本书有几个亮点:

1. 薄

2. 给出了C++查找机制,完整的。特别清楚,相信看完后说还不理解的,我只能拜倒。

3. 给出了模板的概念,他对模板几乎花了一半的篇幅,所以绝对详细,但不啰嗦。看完后,我相信你都有能力看《Modern C++ Design》

4. 给出了一些常见涉及模式,不是主要内容,初学可略过。

如果在阅读过程中有哪个不懂,这是可以参考红宝书,根据目录直接索引到具体内容,或者直接online search。

 

上面所讲的内容不涉及STL。如果需要学习STL,建议还是先学完数据结构,然后学完上面的C++基础,再开始看,随便找本书,但不要《STL源码剖析》,牛都没见过,就庖丁解牛,就有点不太切实际了。薄一点的书就行,或者直接参考手册。

 

 

学完基础篇,可以考虑Effective 三大本,有些内容过时了,但是大部分绝对还是真理。看过此书,对很多代码就会有知其所以然的觉悟了。剩下的我推荐C++老大写的那本书(不是参考手册的那本),编程思想第二卷,《C++编程规范》,有空的时候看看。不要急于写超过1000行的代码,多看一些源码,多写一些简短的只是用来测试学到的技术的代码段,这样就会不知不觉中提高。

 

最后再强调一次,初学不宜《c++ primer》,除非你是上课。想学基础,找薄的书+《C++必知必会》。进一步提高,多看C++编程思想方面的书,不要急于写大段的代码,基本都是错误,这与初学时不同,初学时还是建议多练练小程序。

 

个人观点。人各有志,求同存异。

 

深入理解EtherCAT状态机:从IGH代码看伺服电机如何从‘上电’到‘使能’ 本文深入解析EtherCAT状态机的工作原理,重点探讨伺服电机从'上电'到'使能'的状态转换过程。通过分析状态字(Status Word)和控制字(Control Word)的交互机制,结合IGH代码实例,揭示DS402状态机的核心逻辑,帮助工程师解决60%以上的伺服控制问题,提升EtherCAT网络调试效率。 阅读详情

相关推荐

ArcMap学习笔记(三)地图数字化

地图数字化前言地图数字化实现步骤1.加载地形图2.新建要素图层3.开启编辑环境4.设置捕捉环境5.选择数字化图层6.数字化控制点7.数字化等高线8.数字化图幅边框9.保存数字化成果总结 前言 使用软件:ArcMap10.4.1中文版 如果出现侵权,请在评论留言,我会及时删除,谢谢。 地图数字化 空间数据采集(输入)是将现有的地图、外业观测成果、航空像片、遥感图片数据、文本资料等转换成GIS可以直接...

JayWang博客 1万+

C++入门基础(干货总结,建议收藏!)

c++是一门更多是面向对象程序化设计的语言,因此我们在学习过程中要转变自己的思想,很多人在学习这门语言时,还会和以前C语言面向过程的思想来思考问题,那么带来的结果就是学起来非常困难。所以说学好c++,转变面向对象的思想很重要!

m0_73231946的博客 1555

部署与可视化系统:移动端落地保姆级教程:YOLOv8 转换为 NCNN 并封装进 Android App 调用摄像头实时检测

本文介绍了在移动端部署YOLOv8模型的最佳实践。通过实测数据对比,采用NCNN框架在骁龙865设备上可实现35+FPS的实时推理性能。文章详细分析了NCNN相比TFLite、MNN等框架的优势,包括更高的ARM CPU性能、更优的Vulkan GPU加速和更小的模型体积。同时提供了从PyTorch模型到NCNN格式的完整转换流程,包括FP16优化和INT8量化方法,并重点解析了YOLOv8特有的输出格式处理要点。建议开发者先在Python环境验证NCNN推理流程,再部署到Android平台,以确保最佳性能

ZXSXJ的博客 209

C++的基础学习

C++的基础学习

qq_50603830的博客 2703

MATLAB计算干旱指标:SPI、SRI、SWAP、DWAAI、EDI等

简介各种干旱指数以及其MATLAB代码实现

WW、forever的博客 2万+

华为od 面试八股文_Python_02_含答案

华为od 面试八股文_Python_02_含答案

MISAYAONE的博客 4532

C++ 如何入门?

首先,入门的话,推荐一本书,是谭浩强老先生的《C++程序设计》,我们专业上这门课的时候就是用的这本书,我看到,好像网上有很多人喷这本书,说里面有很多错误,我用的时候感觉确实有一些错误,但或许也可能是版本的问题吧。但是,我觉得这本书入门还是很好的,里面的知识点足够细,是比较适合自学的(我们老师也这么说的)。如果说,C++primer(确实好书)的话,我个人建议还是不要一开始就看吧(如果题主意志力足够...

十指波课堂的博客 3746

AI 大模型应用数据中心的数据清洗工具

1. 背景介绍 在人工智能大模型应用的浪潮中,数据清洗作为数据预处理的重要环节,对于提升模型性能和可靠性具有至关重要的作用。数据中心作为人工智能模型的运行环境,面临着海量数据流和多样化的数据类型,如何高效、准确地进行数据清洗,成为应用大模型的关键问题之一。本文将详细介绍AI大模型应用数据中心的数据清洗工具,包括核心概念、算法原理、具体操作步骤、应用场

SuperAGI2025 1804

【纯干货】C++应该怎么学

C++应该怎么学 如果把C语言看做是一头性格暴躁难以驯服的公牛的话,那么c++则是一条无比狡猾,凶猛厉害的恶龙。想要降服这条恶龙就需要十分强大的力量,换言之,想要掌握C++就需要谨小慎微的态度和较为扎实的技术能力。 那么,如何才能学好C++呢?对于初学者而言,可能无从下手。毕竟,C++和C语言没有太多联系,(虽然早期人们称C++为含有类的C)不过,在C++的学习之前还是建议先学好C语言,比如数据类型,表达式,数组,指针,结构体等等。 建立起编程的逻辑思维,了解基础的计算机知识,这样,才能更好的学习C++。当

sixstar666的博客 1万+

安装西门子TIA Portal V15.1提示先决条件不足如何处理?

安装TIA Portal STEP 7 Professional WinCC Professional V15.1提示先决条件不足,需要如何才能够满足安装条件呢? 1.硬件要求: 安装 STEP 7 Basic / Professional V15.1 的计算机必须至少满足以下需求: 处理器: Core i5-6440EQ 3.4 GHz 或者相当 内存: 16GB或者更多(对于大型项目,为32GB) 硬盘:SSD,配备至少50GB的存储空间 图形分辨率:最小 1920 x 1080 显示器:15.6"

Robot_PLC_HMI_Automation 2万+

OpenClaw人人养虾:接入Matrix

Matrix 是一个开放的去中心化通讯协议(Decentralized Communication Protocol),任何人都可以搭建自己的 Homeserver(家服务器)并与全球 Matrix 网络互联。OpenClaw 通过 Matrix Client-Server API 实现接入。

王国平的博客 526

从零开始学C++系列目录

从零开始学C++系列(一)

lxh_xgz的博客 146

6.3 节深度拆解:Hermes Agent 多 Agent 协同执行链路的 4 层设计逻辑

拆解 Hermes 多 Agent 协同的 4 层工程化设计(协议层、编排层、执行层、适配层),聚焦协议层的强约束消息 Schema 如何解决 Agent 间语义不一致问题,并提供 `soul.md` 配置、GLM-4.7Flash 结构化输出验证及 v0.13.0/v0.14.0 版本实操避坑指南

weixin_42520239的博客 122

堂妹又又又要开始学CPP了。

堂妹的自省 C++ primer 这本书,我已经打开了无数次,每次读完前三章就扔了,该打。 时常怀念以前自律,有规划,有目标的自己,想太多不如开始干。 择日不如撞日,就从今天开始吧。 也想借这个机会,对抗自己的焦虑症,过去的六个月实在过的太糟糕了。 过去的几个月,把那个自信,阳光,向上的自己给丢了。 我不能任由自己坠落下去,得横住。 接下来想在这里记录学习CPP的心路历程,有笔记,有习题解析,有抱怨,有牢骚,有xxxxx… 不好意思直接在公号上发文,首发在这里,欢迎大家监(催)督(更),指导我学习嘻嘻。

欢迎光临啊噗不是阿婆主的酒馆 288

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

开始学C++

       今天公司进行裁员了,自己还算留下来,也让自己清醒许多,以前浪费了很多时间没学习,从今天开始学C++. #include "stdafx.h"#includeusing namespace std;int main(){ //cout  for(int i = 1; i {  cout } cout system("pause"); return 0;} 

392

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

开始学c++

我的c++笔记

2401_88475214的博客 322

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【C++深学日志】从0开始的C++生活

C++学习之旅:从入门到精通的探索 本文介绍了C++语言的发展历程和基础入门知识。C++起源于1979年,历经前标准阶段、经典时代到现代C++的演变,最新版本C++20引入了模块、协程等革命性特性。文章通过示例展示了C++基本语法,重点讲解了命名空间的概念及其三种使用方法,帮助解决命名冲突问题。最后介绍了C++的输入输出机制,包括cin、cout等标准流对象的使用,为初学者提供了系统学习C++的起点。

萌新的博客 6407

今天小小白开始学C++啦

今天开始学C++啦,跳过c语言,学完C++后接回C语言!

GaryLoeng的博客 674

从零开始学cpp(1)

处理cpp中可能遇见的变量同名问题,关键字是namespace,只能定义·在全局域,命名空间中可定义变量,函数,类型,本质上是通过定义了一个域来处理同名变量的问题。代码:namespace 空间名变量类型 变量名;域分为全局域,局部域,命名空间域,类型域,域影响查找变量的逻辑,全局域和局部域还会影响变量的生命周期。通过::这个符号可以在::的左边加上域名可以限定变量,若什么都没有则默认为全局变量。namespace还可以嵌套定义使用时则最外层命名空间名::次外层命名空间名::…………::变量名。

Han919_06的博客 378

你知道如何从零开始学c++游戏编程吗

在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的。平台与编程语言选择首先,游戏开发的平台就有很多类型:个人主机平台:Windows、Linux、Mac OC;移动平台:iOS、Android、Windows Phone、BlackBerryOS、Symbian;专业主...

stone15165的博客 4万+

今天开始,要从C++的模板开始学C++

今天是第三天登陆自己的Blog,也不知道写上些什么好.C++也弄了好久了,总是三天暴,四天寒的,也不知道自己有多少水平.哎,从今天开始,应该有所提升了.就从模板开始吧.

蓝光书虫_活在尘世间 1021

从0开始学C++ 课程目录

从0开始学C++ 课程目录

weixin_44738632的博客 1677

从零开始学C++ 基础01

从零开始学C++ 基础01  原创 by aucki 一.C++简介: C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 【推荐使用DEV-CPP来进行C++语言的学习】

小丽买笔-从零开始学语言 949

今天开始学C++

cout<<"作者:"<<books.author<<endl;cout<<"作者:"<<book->author<<endl;cout<<"书名:"<<books.title<<endl;cout<<"书名:"<<book->title<<endl;cout<<"作者:"<<author<<endl;cout<<"书名:"<<title<<endl;strcpy(book1.title,"呼呼");

2503_91205318的博客 1424

问题四:五六年级开始学C++还来得及吗?听说一般信奥强省都是从二三年级就开始学C++了

问题四:五六年级开始学C++还来得及吗?听说一般信奥强省都是从二三年级就开始学C++了

青少年趣味编程 1400
上一篇: Effective C++
下一篇: Effective C++ (II)
sunshyran
博客等级 码龄17年 114粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值