rei1984 发表于 2019-5-22 19:23:59

有单片机c语言经验的电工。想学c++ 有推荐的入门书籍吗?

前不久学了python 。 用python 的tkinter 做了gui的程序。算是小成。目前在用threading 方向进化。

最近有个mfc的项目要开客户的代码。c++大学里也没学过。

收索了网上的信息。mfc 必须是先学c++在学mfc才行。。

所以问下论坛搞单片机的兄弟们c++哪本书最适合电工?(有c语言项目经验的电工)

如果有pdf的话。麻烦共享一下更是要摩拜下。。

已经会c++的大佬,可以谈谈自己通过哪本书学会c++的。。。。再次谢谢

TKZXJ 发表于 2019-5-22 19:44:12

thinking in c++

rei1984 发表于 2019-5-22 20:51:18


thinking in c++2nd比较好。

谁能帮忙下载下csdn地址

https://download.csdn.net/download/luhu124541/10544132

rei1984 发表于 2019-5-22 21:12:14

在网上找到了 中文第二版。

csdn的大牛说 尽量看英文版。粗略的看了一下英文2nd版,有800页。估计坚持不下来。

所以上传2nd 的中文版, 凑活者自学。 希望能对后面的坛友有帮助。


mikeliujia 发表于 2019-5-22 21:32:48

试试C++ prime plus

kinsno 发表于 2019-5-22 22:08:25

rei1984 发表于 2019-5-22 21:12
在网上找到了 中文第二版。

csdn的大牛说 尽量看英文版。粗略的看了一下英文2nd版,有800页。估计坚持不下 ...

其实就那3板斧,多态继承封装。。封装就是我们的结构体,继承,实际上也是结构体的变种,多态,C语言真的是无解。。其实不用刻意用,直接上来就开搞,搞着搞着,你突然发现,其实长的一样嘛。。主要是熟悉套路和各种API本身。。

shouqiang_zhang 发表于 2019-5-22 22:49:18

感觉C# 要好学很多。

huangqi412 发表于 2019-5-23 09:38:32

不限制语言话换c#把

simplorer 发表于 2019-5-23 10:08:11

说说我的经验,我是从C,想转C++,学了段时间的《C++ primer plus》,略有心得,
至少明白了多态,继承等基础概念,然后项目用不到,放下了。
有时候项目需要,写一写简单的小程序,主要是一些串口或者CAN上位机,或者数据格式转换等。
突然发现微软的c#比较符合我的要求,于是现在的程序都是c#完成。
说实话,我对c#语法没有学习过,由于要求简单,基本都是边学编写。
实在不行,还有google和github。

关键看你学习一种语言用来做什么,整个linux基本都是基于C的,C语言干不好的事情,C++也未必可行。
如果要搞简单的windows应用,c#配合vs,神器啊。

ywlzh 发表于 2019-5-23 10:29:51

C++ prime plus 绝对的入门之选,比国内的那些书讲的不知道好多少倍。细节处理很到位。

学完这本书感觉要放弃了就放弃吧

rei1984 发表于 2019-5-23 23:13:42

simplorer 发表于 2019-5-23 10:08
说说我的经验,我是从C,想转C++,学了段时间的《C++ primer plus》,略有心得,
至少明白了多态,继承等基 ...

谢谢兄弟的分享。

之前我在搞76e003 的下位机 bootload
新唐的官方开源了上位机烧写软件,是用mfc开发的。于是想试着修改软件。其实是想把上位机用python gui来实现。
用vs2010加载 新唐的上位机后,一直找不到界面和回调函数。所以想学学c++。感觉是不停的在给自己挖坑。

我在耐心下来看下新唐的源代码。 应该能找到有用的信息。并且吧上位机移植到python上

uindex 发表于 2019-5-23 23:53:00

有一本名字起的特别山寨的书《21天学通c++》比较适合入门,别太在意书名,书的内容易懂,覆盖知识点清楚就够了。

takashiki 发表于 2019-5-24 06:14:44

首先来打击下LZ,因为我大学就是先学C++的,然后才是单片机中学C,和你这个不一样。但是特别提醒:C的经验不要直接套到C++!不完全兼容的。凡是鼓吹完全兼容的都是自己是半吊子还好为人师的,尤其从C99开始以后的C新特性和C++那是各自独立发展,互不兼容。
其次,MFC是个很古老的架构了,新的设计中还在用这个架构的已经不多了。
第三,你想把上位机移植到python上,是为了跨平台还是别的原因?如果不需要跨平台,建议您不要移植了,直接调用多好。指不定里面调用了什么奇奇怪怪的类呢。
第四,C++增加的内容其实根本就不止那点类与对象。如果您不想深入学习,那么泛型(主要是模板)和异常就别看了,省得心烦。如果要好好学习并在实践中使用C++,那么STL你基本上躲不过去。C、C++都有自己的基础运行库,比如你看到的那个<stdio.h><stdlib.h>之类的,然后很不幸,C++加入的库基本上都是模板库,你看下他的源代码你就知道,原来天书都没有这么复杂。
第五,设计模式。估计任何一本讲语法的书都不会讲到设计模式,但是你参考的程序中很可能充满了这些东西,不要为了效率考虑试图去优化它。

takashiki 发表于 2019-5-24 06:23:36

kinsno 发表于 2019-5-22 22:08
其实就那3板斧,多态继承封装。。封装就是我们的结构体,继承,实际上也是结构体的变种,多态,C语言真的 ...

多态可以用函数指针实现的。不要求内存排布完全一致,那就直接写到结构体里面;如果有内存排布的考虑,还得构建虚函数表,这个麻烦

rei1984 发表于 2019-5-24 06:29:31

takashiki 发表于 2019-5-24 06:14
首先来打击下LZ,因为我大学就是先学C++的,然后才是单片机中学C,和你这个不一样。但是特别提醒:C的经验 ...

是的。目的就是为了跨平台,才需要移植

icoyool 发表于 2019-5-24 08:05:27

先看中文再看英文,不要想着一步登天

rei1984 发表于 2019-5-24 08:21:46

uindex 发表于 2019-5-23 23:53
有一本名字起的特别山寨的书《21天学通c++》比较适合入门,别太在意书名,书的内容易懂,覆盖知识点清楚就 ...





外面找了一圈,找到了最新的超清第八版。
上传上来,方便以后要学习的论坛朋友。


rei1984 发表于 2019-5-24 08:24:03

以我自学的经历来看。书不在于多。入门找对方向一本就够了。

然后就是花费耐心去coding那些例子。

Jmhh247 发表于 2019-5-24 09:00:21

rei1984 发表于 2019-5-24 06:29
是的。目的就是为了跨平台,才需要移植

既然你的目的是跨平台,可以试试Qt开发上位机(当然这个也是需要C++知识的),Qt的跨平台能力,相信不用多说了

以后想搞嵌入式Linux开发,Qt也是有用的。



PS,个人感觉,针对电工,程序语言的基础配置应该是这样的:

1. C,原因不必说了;
2. Qt或C#(Qt的收益强于C#),为了解决点上位机的应用,可能更多是串口应用;
3. python,脚本语言,本身主要作为辅助工具语言(更适用上位机);
4. lua,脚本语言,这点需求不如上面3点强烈或普遍(更适用下位机)。

hyghyg1234 发表于 2019-5-24 09:10:37

Jmhh247 发表于 2019-5-24 09:00
既然你的目的是跨平台,可以试试Qt开发上位机(当然这个也是需要C++知识的),Qt的跨平台能力,相信不用多 ...

上面这些基本就是我常用或者说是会用的大部分语言了,上位机用C#(现在慢慢的转Qt了)。开发ESP8266用的是lua,基本也算是常用开发语言了。Linux下面一些功能性的插件之类的会用Python来做。主力语言还是C了

myemcu 发表于 2019-5-24 09:12:02

啥是C加加?

Jmhh247 发表于 2019-5-24 09:26:16

hyghyg1234 发表于 2019-5-24 09:10
上面这些基本就是我常用或者说是会用的大部分语言了,上位机用C#(现在慢慢的转Qt了)。开发ESP8266用的 ...

哈哈,看来我的总结还算到位,都是多年实战后的个人心得

python一般也会用到pyqt,和Qt本身就存在一些共性

可以说,这个“基础配置”是学习成本比较小的了。

rei1984 发表于 2019-5-24 15:58:30

Jmhh247 发表于 2019-5-24 09:26
哈哈,看来我的总结还算到位,都是多年实战后的个人心得

python一般也会用到pyqt,和Qt本身就存在一些共 ...

大神你上文回复的 qt,是 基于C++写的 gui商业库。最后是用 g++ 编译成 可执行文件的吗?




至于最后一个 回复pyqt 是 qt在 python上的移植,和 主流qt(C++实现)有许多共同点, 但2者也有一些差异?具体是哪些差异,能否点拨一下

Jmhh247 发表于 2019-5-25 09:53:20

rei1984 发表于 2019-5-24 15:58
大神你上文回复的 qt,是 基于C++写的 gui商业库。最后是用 g++ 编译成 可执行文件的吗?




大神称不上。

我说的都是个人理解,不一定准确,下面的也是。


第一个问题:是的,最终就是编译好的可执行文件。Qt本身是一套框架,不仅是gui库。

第二个问题:共同点是gui控件的操作方法;差异真不好说,平常用用,我没深入研究过,毕竟是两种不同的语言,我想Qt可能会更灵活一些。。。


最终,知识都是要应用的,可能先用起来,收获就有了,疑惑也解开了。

RAMILE 发表于 2019-5-25 10:27:03

找人教你,我就是把同事问烦了才入门的

uindex 发表于 2019-5-25 11:55:40

啥叫了解,啥熟入门,啥叫精通

谈场恋爱差不多叫了解,接触到皮毛了
入门就不解释了,字面意思已经很浅显,送牛奶不算
结个婚搞出下一代算是精、通了

更高的层次不了解,未入门,不精通

minicatcatcn 发表于 2019-5-31 13:15:43

谢谢入门的书,先做一个记号

王二小 发表于 2021-2-21 01:03:38

楼主可以试试 Delphi

qinxg 发表于 2021-2-21 08:32:04

从我的经验来说, 建议直接找一本MFC入门的书, 先把每个例子都做一篇,各个控件, 单文档, 多文档, 主框架,,,, 手工敲一篇.等有了大概的印象再分析里面的C++语法.
我们是工程师, 不是学生.最终你会发现 WIN窗口编程, MFC的框架, 消息传递体系才是难点.我那时干脆用WIN32 API编了几个例子, 才明白到底咋回事.

security 发表于 2021-2-21 09:58:32

qinxg 发表于 2021-2-21 08:32
从我的经验来说, 建议直接找一本MFC入门的书, 先把每个例子都做一篇,各个控件, 单文档, 多文档, 主框架,, ...

其实,应该请楼主回来讲一下,入门了没有,怎么入的门。

imliyucai 发表于 2021-2-23 12:03:24

uindex 发表于 2019-5-25 11:55
啥叫了解,啥熟入门,啥叫精通

谈场恋爱差不多叫了解,接触到皮毛了


真是神回复。入门 精通。

小水瓶 发表于 2021-2-23 16:49:35

mark一下
页: [1]
查看完整版本: 有单片机c语言经验的电工。想学c++ 有推荐的入门书籍吗?