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变 ...
 
随机推荐
- 增强LSH
			
通过LSH hash functions我们能够得到一个或多个hash table,每个桶内的数据之间是近邻的可能性很大.我们希望原本相邻的数据经过LSH hash后,都能够落入到相同的桶内,而不相邻 ...
 - NOIP2014 行记
			
不知道OI是啥或者信息学竞赛是啥的可以按`Ctrl+W`. <del>很早开始写的..准备出分之后再发布.</del> 谨以此文纪念我信息学竞赛的第一次正式考试. 背景音乐底部 ...
 - The 5th Zhejiang Provincial Collegiate Programming Contest---ProblemG:Give Me the Number
			
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2971 题意:将输入的英文数字表达转化为阿拉伯数字. #include< ...
 - Flume学习——Flume的架构
			
Flume有三个组件:Source.Channel 和 Sink.在源码中对应同名的三个接口. When a Flume source receives an event, it stores it ...
 - iOS开发之loadView、viewDidLoad及viewDidUnload的关系
			
iOS开发之loadView.viewDidLoad及viewDidUnload的关系 iOS开发之loadView.viewDidLoad及viewDidUnload的关系 标题中所说的3个方 ...
 - 编码识别工具:hash-identifier
			
hash-identifier的使用: 当不知道编码是什么类型的时候,可以通过kali系统中的hash工具判别,如下图所示, 在HASH后面输入要判别的编码内容,在后面的Possible Hashs中 ...
 - 基于Android Studio搭建Android应用开发环境
			
备注:电脑是windows xp系统 1. 安装JDK和环境变量设置 JDK是java development kit,Java JDK下载地址 http://www.oracle.com/t ...
 - .NET中各种不同的Timer之间区别
			
System.Timer.Timer 根据命名空间看这个类貌似才是标准的Timer,它提供Interval属性和Elapsed事件.可以每隔一个时间周期触发一次Elapsed事件.在ThreadPoo ...
 - poj 2195 Going Home(最小费用最大流)
			
题目:http://poj.org/problem?id=2195 有若干个人和若干个房子在一个给定网格中,每人走一个都要一定花费,每个房子只能容纳一人,现要求让所有人进入房子,且总花费最小. 构造一 ...
 - [转]jBoss事务控制
			
转自:http://blog.csdn.net/trendgrucee/article/details/8545512 一.基础知识 1.JTA,即Java Transaction API,译为J ...