C++ 我想这样用(一)
虽然还是菜鸟,但我是一个地地道道的c程序员,甚至一度很讨厌C++(虽然现在也是)。
为了在不用C++的情况下学习和使用面向对象而长期奔走,曾经用过一年的Python,后终放弃。之后很长一段时间里摆弄OOC(用c实现面向对象),比如JCOOP,LW_OOPC,GObject...后发现他们的设计异曲同工,使用方法大同小异。
个人比较喜欢这类方法,因为很轻量级,在环境苛刻的嵌入式领域很有用处。但是由于重度强迫症,实在无法接受在“大量需要面向对象”的项目里使用这种蹩脚的方式。于是必须再找一条通路。最后大牛的一句话点醒了我:“好的设计才是关键,没人关注你究竟用的什么语言”。。。。。。。。终于,我接受了C++。
不过不要误解,我接受是C++中面向对象的部分而不是什么高端语法,什么STL,Boost。。。
于是有了这个系列文章:“C++ 我想这样用”。不知道我会写到哪里,但是我会尽量坚持。如果你和我一样,是个“C脑残粉+重度强迫症+受虐狂”,还觊觎面向对象的美色,那么恭喜你,这篇文章是为你而写,如果不是,请不要再看下去了。。。您宝贵的时间应该用在编码上!
下面进入正文:
先来说说什么是EC++:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Embedded C++是日本电子大厂NEC, Hitachi, Fujitsu,以及 Toshiba 所使用的内嵌式编程语言。
Embedded C++ 是C++的子集合。有某些C++的特性被移除:
- 多重继承(Multiple inheritance)
- 虚拟基础类别(Virtual base classes)
- 执行时期型别资讯(Run-time type information,即 typeid)
- 新式C++转型(static_cast, dynamic_cast, reinterpret_cast 和 const_cast)
- mutable 型别
- 名称空间(Namespaces)
- 例外(Exceptions)
- 样板(Templates)
这套语言并不被其他的 C++专家看好。特别是C++之父Bjarne Stroustrup 称,"To the best of my knowledge EC++ is dead (2004), and if it isn't it ought to be."[1] 事实上,Embedded C++的官方网站自2002年以后就没再更新了。
(以上内容来自维基百科)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
OK,虽然这个东西已经死掉了,但是却给我提供了宝贵经验,我在使用C++时就会借鉴这种思路,即:
1. 和面向对象无关的东西统统不要,
2. 过度的面向对象机制(如多重继承)也不要,
3. 和C的理念相互违背的东西绝对不要!!
那么有了这些基本思想,我就要转头C++了,别了我的gcc,呜呜~~~~~
OK,就这么多,下次具体说说转投C++环境下要注意的东西,毕竟人在屋檐下,不能不低头(就是说有些很BT的C特性,在C++里是不能接受的,呜呜)。
C++ 我想这样用(一)的更多相关文章
- 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!
看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...
- CoreCRM 开发实录——想用国货不容易
昨天(2016年12月29日)发了开始开发的文章.本来晚上准备在 Coding.NET 上添加几个任务开始搞起了.可是真的开始用的时候才发现:Coding.NET 的任务功能只针对私有的任务开放.我想 ...
- 【踩坑速记】二次依赖?android studio编译运行各种踩坑解决方案,杜绝弯路,总有你想要的~
这篇博客,只是把自己在开发中经常遇到的打包编译问题以及解决方案给大家稍微分享一下,不求吸睛,但求有用. 1.大家都知道我们常常会遇到dex超出方法数的问题,所以很多人都会采用android.suppo ...
- 要想提高PHP的编程效率,你必须知道的要点
1.当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数.此函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储 ...
- 我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗
文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样:1. 不要辞职.首先说,你对整个开发没有一个简单的了解,或一个系统的入门学习.换句 ...
- ES6 箭头函数中的 this?你可能想多了(翻译)
箭头函数=>无疑是ES6中最受关注的一个新特性了,通过它可以简写 function 函数表达式,你也可以在各种提及箭头函数的地方看到这样的观点——“=> 就是一个新的 function”. ...
- Windbg Extension NetExt 使用指南 【3】 ---- 挖掘你想要的数据 Managed Heap
摘要 : NetExt中有两个比较常用的命令可以用来分析heap上面的对象. 一个是!wheap, 另外一个是!windex. !wheap 这个命令可以用于打印出heap structure信息. ...
- JS的Object漫想:从现象到“本质”
转自:http://zzy603.iteye.com/blog/973649 写的挺好,用于记录,把对象分成概念的Object(var f={})和 类的Object(function F(){}) ...
- 个人随想:对于一个.Neter来说,如果一直想走技术路线,该怎么走下去
前言 首先我不是一个合格的.Neter,也许在这里我的技术算是很菜的,不过我也是有想法的人,下面罗列出我的想法和将要实现的技术路线图. 1.学习一门底层语言 比如学习C语言,学习C语言的最终目的我觉得 ...
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
随机推荐
- NOI2015考试小结
这次NOI2015有幸获得金牌考进了国家集训队,意味着我的OI退役时间既省选之后有延迟了好几个月,又有了新的目标吧. 先说一下考试之外的感受吧,学军宿舍很牛X,接待NOIers而不提供插座,唯一可以用 ...
- uva 10608
简单并查集 水水..... #include <cstdio> #include <cstring> #define maxn 30005 int fa[maxn],ans[ ...
- Spark中shuffle的触发和调度
Spark中的shuffle是在干嘛? Shuffle在Spark中即是把父RDD中的KV对按照Key重新分区,从而得到一个新的RDD.也就是说原本同属于父RDD同一个分区的数据需要进入到子RDD的不 ...
- Manifest 与TypeTag
Manifest和TypeTag是要解决什么问题? As with other JVM languages, Scala’s types are erased at compile time. T ...
- HDU 1203 I NEED A OFFER!(01 背包DP)
点我看题目 题意 : 中文题不详述. 思路 :类似于01背包的DP,就是放与不放的问题,不过这个要求概率,至少得到一份offer的反面就是一份也得不到,所以先求一份也得不到的概率,用1减掉就可以得到所 ...
- 在其他的电脑上配置绿色Jre+tomcat运行环境
其他的同事要使用我们的web程序(基于tomcat的web程序).所以要求是对方的电脑任何程序都不需要安装,把我们的包拷贝过去,直接执行批处理就可以运行. 经过了一番摸索,实现方式如下: 1,准备jr ...
- 简单的神经元算法实现(python)
参考python代码如下 #perceptron x=[[1 ,0, 0],[1,0,1],[1, 1, 0],[1, 1, 1],[0,0,1],[0,1,0],[0,1,1],[0,0,0]] y ...
- JBoss7 局域网无法访问 解决方法
JBoss7 局域网无法访问 解决方法 在standalone模式,修改/standalone/configuration/standalone.xml.如下 修改或新增一个interface. &l ...
- Ubuntu 安装Android Studio与使用手册
用的是Ubuntu 12.04 1.先去下载,国内可以去这里下载 https://github.com/inferjay/AndroidDevTools 2.下载后解压进入android-studio ...
- 去除windows的Shift+Space 全角半角切换
windows7下的输入法,有一个“全/半角切换”的快捷方式“Shift+Space”,我们可以通过以下方式查看到: “开始”->“控制面板”->“区域和语言”->“键盘和语言”-& ...