接触C++已经十五年了。。。但是对于C++而言,我至今是个门外汉,不是谦虚,而是确实不得其门而入。
历程是这样的——
大学考研要考C++,就自学了。研没考上,C++算是学了,准确的说是C++的语法,以及面向对象的概念,全是虚的东西。
毕业找工作,人家要做个简单界面,我不会,因为还不会使用任何C++做界面的类库,编译器也只会使用Turbo C++ 3,被羞辱了。最后凭借C语言找到一份编程的工作(没问UI的东西,感谢第一个东家给饭吃)。但是制作工具软件,还是要使用界面(GUI)。整个开发就俩人,我和领导。领导问我用啥,我说VC吧,结果看了两个月MFC,始终一头雾水(领导也不用VC,网络不发达,找资料和跟人讨论没现在这么方便)。领导说他在用C#.Net,让我也用,然后我就走上了C#之路。。。
然后就是刚来中金的时候,领导让尝试做个飞马的网关,API是C++的,我就又有了折腾C++的机会,采取的方案是C#<->C++/CLI<->C++。后来项目放弃,代码也没人维护,因为没有人想同时维护三种语言。
最后就是最近不得不调用柜台厂商的C++API,但是选择的P/Invoke,不写一句C++代码。
这几天跟使用C++做网关的同事聊,说起他们的代码其实是要尽量跨平台的,虽然不能build once, run everywhere,但是想要code once, run everywhere。就是写一份代码,通过宏开关来处理与平台相关的逻辑,然后对每种平台编译一份。我突然发现,终于找到打开C++的正确方式了,happy:)