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变 ...
随机推荐
- [转载]Eziriz .NET Reactor 4.7.0.0 官方原版+破解补丁(强大的代码保护和软件防盗版工具)
Eziriz .NET Reactor 是一个强大的代码保护和软件防盗版工具,完全由.NET框架编写..NET Reactor支持NET平台的软件许可系统,并支持NET程序集所有语言.当.Net编译器 ...
- GIT:本地有更改,但强制作远程仓库里作更新
有时,紧急线上修改时,这个功能有用处的. git fetch --all git reset --hard origin/master ================ git reset --har ...
- Java发送post请求
package com.baoxiu.test; import java.io.BufferedReader;import java.io.InputStreamReader;import java. ...
- Eclipse插件—Easy Explorer
如何使用Eclipse插件—Easy Explorer Easy Explorer是一个Eclipse插件,主要用于快速浏览项目文件的目录,实用性比较强. 使用方法如下: 1.下载Easy Expl ...
- eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接。
eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接.全部报错信息如下: Exception in thread & ...
- Qt之高级网络操作(HTTP/FTP快速上手)Qt之QHttpPart和QHttpMultiPart
http://blog.csdn.net/u011012932/article/details/52535755 http://blog.csdn.net/u011012932/article/det ...
- 187. Repeated DNA Sequences
题目: All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: " ...
- RedMine项目管理系统邮件推送设置(Windows环境)
RedMine项目管理系统有邮箱推送功能,当Bug,安全漏洞等内容被修改.解决.评论的时候,系统会通过邮件 及时的通知你的团队和客户.邮件通知的环节.形式.时间.接受人均可定制,功能十分实用. 下面是 ...
- Android 响应webview中图片的点击事件
最近碰到个新需求需要点击webview中的图片进行放大显示. 整理了下思路,想到了下面的一个可行的方案. 方案思路, 1.在点击图片的时候调用本地的java方法并给出响应的图片地址 2.本地获得图片地 ...
- 测试darwin calendar 服务器
cd CalDAVTester README.txt中说的明白—— QUICKSTART Edit the serverinfo.xml file to run the test against yo ...