关于C++的新认识

最近是彻底变成代码民工了。看不到头的C++(C++培训 )编程和不知何时能完成的Verilog Parser。以下是这一段时间里获得的新认识,按脑袋开窍的前后顺序排序(也就是没顺序):

  1. Bison和Flex。数年前就知道,但从来没有静下心来学。现在是硬头皮用上了。Bison是语法检测和语义解释器,yacc的升级版,Flex是代码 扫描器(将源代码换成语法检查能够识别的token流,顺便也有语法检查功能),lex的升级版。但是还缺一个预处理,不能处理头文件。不过将Bison 和Flex连起来,设计自己的数据结构并读入单个Verilog文件已经很头大了,不知最后能否完成。

  2. #line 头一回看见这么个宏。其作用是告诉C/C++编译器以下代码为另一个源文件的代码(暗指当前代码为自动生成代码),报错时则会直接报真正的原文件错误。(利大于弊,有时候我还是会想看自动生成代码的行数。)

  3. namespace 是开放的。也就是说可以随意的向任何一个namespace里面添加类和函数。编译器只是简单地把他们连起来。(看起来有点危险)

  4. union里面不能出现复杂类类型(有自定义构造函数的类)。(我怎么就觉得这是个bug,一下子union就不好用了,不过C++11好像准备支持)

  5. 返回值的不同不能作为方法多态的判别,也就是两个函数如果只有返回值不同是重名的。(要是可以该多好,可能是因为C++的默认类别转换)

  6. 之类的构造函数不能直接初始化父类成员,而必须通过父类的初始化函数初始化。(为什么不可以,构造时父类成员不可见?)

  7. 多父类的子类只要继承于同一个直接父类就能放到一个数组里或转化为同种父类指针,但间接父类就不行(父类的父类)。(为什么,只能看见一层父类而已?)

  8. 突然意识到在父类中定义私有成员基本是无意义的,因为不可能在子类中可见。(为何不能以私有继续继承呢?)

  9. 没有虚函数的类对象不能使用动态类型转换(dynamic_cast)(据说是因为需要用到虚函数表,没有虚函数的对象没有该表,原理上基本没道理不支持啊!)

  10. 局部作用域内的类型不能作为STL的类型参数。(没天理,用个STL的范类型还必须使用全局作用域,介就是个bug!!! C++11的lamda将会解决这个问题,但我还不准备把C++那蹩脚的函数式编程用上,太纠结了。)

  11. shared_ptr好像是个好东西,尽量用上。

  12. C++居然把从int到char*的C函数(itoa)从stdlib里面给扒了,没道理啊。最后用了boost::lexical_cast。感觉上杀鸡焉用牛刀。

  13. boost::regex的正则表达不错,是个好东西。

  14. GNU MP库是个好东西。能做多于32位的数据操作,白写了三天的大数加减乘除。

时间: 2024-10-14 12:49:08

关于C++的新认识的相关文章

美国政府关于Google公司2013年度的财务报表红头文件

请管理员移至新闻版块,谢谢! 来源:http://www.sec.gov/ 财务报表下载↓ 此文仅作参考分析. 10-K 1 goog2013123110-k.htm FORM 10-K UNITED STATES SECURITIES AND EXCHANGE COMMISSION Washington, D.C. 20549     FORM 10-K (Mark One)       ý ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF TH

聚焦新相亲时代:女孩在京有五六套房哭着想嫁富2代

2017-09-20 07:31:00 来源: 中国青年报(北京)        举报 6984 分享到: 易信 微信 QQ空间 微博 更多 用微信扫码二维码 分享至好友和朋友圈 T + - (原标题:中青报聚焦新相亲时代:2亿人及其背后家庭组成的"擂台") 石家庄某相亲角.视觉中国 资料 平均算下来,每一分钟里,国内有22对新人拿着户口本走向民政局,进入婚姻生活:同时,8对夫妻在另外一个窗口签下离婚协议. 根据民政部公布的数字,中国的结婚率和离婚率曲线渐渐逼近一个闭合的大于号.婚姻的

苹果三星新“机皇”遇冷,国产手机该高兴吗?

几年前这还是让人不敢想象的情景:安卓与iOs两大阵营的"机皇"---Note8和iPhoneX,在中国"手机春晚"的年度压轴表演,就真的仅仅是"表演"而已.整个中国手机产业界完全是冷眼旁观.这旁观不是羡慕和嫉妒,而是真的有点漠不关心. 原因简单明了:Note8与iPhoneX刚一发布就已经被所有人认定,在中国市场没有前途.而主流消费者几乎可以肯定地说,将会在一阵感慨之后立刻转身投入国产手机的怀抱. 手机市场的竞争,无非 硬件性价比 + 软件生态

web新特性 之 WebSocket

详情参见:你真的了解WebSocket吗?     WebSocket系列教程   HTML5新特性之WebSocket WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实现了浏览器与服务器全双工(full-duplex)通信.其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信. 服务端与客户端的连接不断开,实现全双工的操作.及服务端或是客户端都会给对方发送消息. WebSocke

张书乐:无人便利店 有风无浪新蓝海,怎么闯?

进店扫码获得电子入场码,选好货物后自动结算,节约下排队和结账的时间,快速离开没有一个售货员的便利店.这样颇有点小科幻的场景,在当下中国已经出现. "F5未来商店"对外宣称,获创新工场3000万元A+轮投资:国内首个商用可规模化复制的24小时无人便利店"缤果盒子"宣布完成A轮系列融资,融资额超过1亿元:阿里首家无人超市"淘咖啡"也在7月第二届淘宝造物节上与首次亮相. 又一个互联网+的大风口来临了吗?有可能成为颠覆实体零售的新势力吗?或许答案是,想得

web网站更换新域名

第一步.绑定新的域名到单独的空间 一般我们都是用的VPS或者不限制建站数量的虚拟主机,尽量的保持原有的IP不变,我这边在老站点同IP的VPS主机下新建一个新域名站点,这样我们可以确保原有的站点IP不变,因为站点频繁的更换IP也是会受影响的. 第二步.复制数据到新站点下 把老站点下的网站文件和数据库复制到新站点下,这里其实只需要把文件搬到新站点下.因为我使用的是WORDPRESS程序,所以在数据库中修改2处网址为新的地址,其次,我用批量替换内容把牵扯到内容中的旧的URL地址改成新的网址. 第三步.

Java精品高级课,架构课,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,第三方支付,web安全,视频教程

36套精品Java架构师,高并发,高性能,高可用,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,P2P金融项目,大型分布式电商实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Elasticsearch,Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.java8新特性,P2P金融项目,程序设计,

新安装的soapui启动时报错及解决方法

今天新安装了soapui准备测试一下接口,结果安装成功后启动时报错:The JVM could not be started. The maximum heap size (-Xmx) might be too large 意思就是:Java虚拟机无法启动.Xmx可能太大 这时就需要将这个参数的值改小一点. 经过排查这个参数在soapui安装目录\bin\目录下的vmoptions配置文件中 将原来的值改为800,保存后启动成功

新awk整理

总感觉上一篇awk的总结几乎是照着man翻译过来的,惨不忍睹 无意间在互联网上有找到了宝贵的资料 感觉整理的很好,想着照着这个来重新写下,对照新的man更新下吧,只是总是在改变的 一.awk简介二.awk工作流程三.awk程序结构四.awk基本语法 awk命令行模式 awk程序文件 awk标准选项五.awk内置变量 标准awk变量 awk特定变量(即专有变量)六.awk操作符 算数运算符 关系运算符 逻辑运算符 三元运算符 一元运算符 字符串连接操作符(即空格符) 数组成员操作符(in) 正则表

新Krypt技术服务等级协议

各位用户您好, 自2017年3月20日起,Krypt将对所有独立服务器(Outlet以及R2O除外)的新订单实施新的技术服务等级协议.这项全新的改革,将直接影响到您购买每台独立服务器的成本以及后台技术工单的响应速度.请您仔细阅读下文: 全新的Krypt技术服务等级协议(SLA's)将分为基础级别Basic, 精品级别Essential, 增强级别Plus以及专业级别Pro四个不同的等级,所有已经购买的独立服务器套餐将自动被划分为Legacy等级. Krypt独立服务器与云服务器的基础SLA包括可