开发C++ QT之后一点小总结

我是以自学Objective-C而入行程序员的。所以,这次拿C++与Objective-C做一下对比。

C++跑起来有点傻帽

Objective-C有一种懒加载机制,能做iOS开发的都懂哈。


image.png
image.png

写的QT页面多了,突然来感觉了,这时候要用懒加载了。可是,我有点编程经验,感觉不行,不能乱用,必须要在第一次使用的时候判断是否为空!然后再看向Objective-C有一个函数,我用C++实现懒加载也得用函数呀(这点没区别)。主要难点在于第一次使用这个对象再创建。想着还是心累,更不值当,万一出bug了更难以维护,直接写到构造函数里面吧。
我就在想,C++加载起来,所有的页面创建的对象都写到构造方法里面,从理论上来说,并不慢但是跑起来有点傻帽。

C++不太能扩展方法

Objective-C在学习语法的时候有一个分类的概念,能在不编译这个类的情况下,给这个类添加新方法。Masonry是一个鼎鼎大名的iOS开发框架,就是UIView的分类,在不编译iOS源代码的情况下,给UIView添加布局方法。C++如果要是给Qwidget添加一个方法,以供个项目中所有的窗口使用,必须要给编继承关系。举个例子,比如项目中好几个窗口都继承自Qwidget,需求改变要更改项目中的所有窗口的样式。那么,项目的中所有的继承自Qwidget的类都要新加一层继承。

自己觉得动态语言更适合闭源,静态语言更适合开源。

下面想为PHP站台

image.png

Objective-C与C++的区别一个动态语言一个是静态语言。我有个伟大设想用Objective-C重新实现一边PHP的解释器。因为动态语言可以在运行时改变程序的结构。iOS开发有个Hook技术,可以用脚本来控制本来已经写好的Objective-C的代码。如果这个脚本是PHP会怎么样?确实不会比C++运行更快,然而可以记住PHP的每次函数跳转。这样就相当于使用函数指针调用每个函数。而不是使用C++每一个去查找一边函数的位置。

我还没有实现一个解释器,就是自己的设想。灵感来源于Linux shell,我并不觉得shell脚本变慢。因为shell每个命令都对应一个二进制进程。那么,PHP能不能每个函数对应每个C函数?我觉得使用动态语言实现,然后改造一下rumtime就可以了。

你可能感兴趣的:(开发C++ QT之后一点小总结)