十一 02
这些天由于项目的关系,又开始重新学习C++,给自己补补课。《C++ Prime》是一本很经典的书,在此我就不推荐了(而且由于那本书太厚了,实在没有耐心全读下去,只能作为参考书了,汗~),最近在看《 Effective C++》,现在才看了前面一部分,觉得很受启发,对实际编程很有帮助,在此郑重向大家推荐这本书(更重要的是它很薄,^_^)。下面摘选一些我觉得很好的内容,跟大家分享一下。
最初,C++只是C加上一些面向对象的特性,但后来随着这个语言的逐渐成熟,C++已经成为一个多重泛型编程语言,一个同时支持过程形式、面向对象形式、函数形式、泛型形式、元编程形式的语言。这些能力和弹性增加了C++性能也增加了C++的复杂度。
学习C++最简单的方法是将C++视为一个由相关语言组成的联邦而非单一语言。在其某个次语言中,各种守则和通例都倾向简单、直观易懂,并且容易记住。然而你从一个次语言移往另一个次语言,守则可能改变。C++主要的次语言有四种:
- C。说到底C++仍然是以C为基础。区块、语句、预处理器、内置数据类型、数组、指针等统统来自C。许多时候C++对问题的解法其实不过就是较高级的C解法,但当你以C++内的C成分工作时,高效编程守则映照出C语言的局限:没有模板(templates),没有异常(exceptions),没有重载(overloading)。。。。
- Object-Oriented C++。这部分也就是C with Classes所诉求的:class(包括构造函数和析构函数),封装、继承、多态,virtual函数(多态绑定,用来实现多态)。。。等等。这一部分是面向对象设计之古典守则在C++上的直接实施。(个人感觉java就是主要是借鉴了C++的面向对象的思想,并且把这种思想发挥到极致,再加上java通过舍弃C++的灵活性来换取语言的简单,这些都造成了java语言的流行。从面向过程到面向对象是程序设计的一次飞跃~~)
- Template C++。这是C++的泛型编程部分,也是大多数程序员经验最少的部分。Template相关考虑与设计已经弥漫整个C++,良好编程守则中“惟Template适用”的思想并不罕见。实际上由于templates威力强大,它们带来崭新的编程范型,也就是所谓的template metaprogramming (TMP,模板元编程)。(我们只需要会适用模板即可,TMP不必深究。现在java也支持模板类,它主要是为了保证类型的安全性)。
- STL。STL是个template程序库,看名称也知道,但它是非常特殊的一个。它对容器、迭代器、算法以及函数对象的规约有极佳的紧密配合与协调,然而templates及程序库也可以其他想法建置出来。STL有自己特殊的办事方式,当你伙同STL一起工作,你必须遵守它的规约。
记住这四个次语言,当你从某个次语言切换到另一个,导致高效编程守则要求你改变策略时,不要感到惊讶。例如对内置(C-like)类型而言pass-by-value通常比pass-by-referenc高效,但当你从C part of C++移往Object-Oriented C++,由于用户自定义构造函数和析构函数的存在,pass-by-reference-to-const往往更好。运用Template C++时尤其如此,以为那时你甚至不知道所处理的对象的类型。然而一旦跨入STL你就会了解,迭代器和函数对象都是在C指针之上塑造出来的,所以对STL的迭代器和函数对象而言,旧式的C pass-by-value守则再次适用。
因此,C++并不是一个带有一组守则的一体语言:它是从四个次语言组成的联邦政府,每个次语言都有自己的规约。记住这四个次语言你就发现C++容易了解很多。(我也有同感,希望你也一样~~)
十一 02
这两天实验室一个项目刚启动,一直在忙。这个项目是在Linux下C++编程进行一个网络P2P平台的开发,对于Linux下的编程我也是一知半解,之前看的这方面的东西几乎都忘了。或许是出于对VIM+GCC+MAKE这种方式的编程的心理抵触,觉得那样编程很麻烦,这两天一直在服务器和自己电脑上装集成编译环境Code::Blocks(听说这个集成环境做的不错),花了好长时间终于把集成环境装好了。可是自己些的第一个HelloWorld程序都编译不了,说是GCC设置有问题,郁闷啊,看来有集成编译环境也不是万能的啊,有些知识还是必须要了解的。
自己终于决定再重新学习一下Linux下编程的知识,主要是看《鸟哥的Linux私房菜》,里面讲的很详细,包括程序如何编译运行,如何调用外部库和头文件,Make的用法,以及动态库 *.so 与静态库*.a之间的区别。晚上花了一两个小时就把这部分内容看完了,突然发现自己有种恍然大悟的感觉,^_^ 。看来即使以前看过的书并不是自己都懂了,当自己遇到问题的时候还是应该把这些知识再重新看一下,这样比你自己尝试半天要有效率的多。这或许就是“温故而知新,可以为师矣”吧,呵呵。只有把自己的疑问都搞懂了,这样自己才能走的更远,走的更轻松~~~
十一 02
elastix是一款集成了PBX的Linux操作系统,它是在CentOS Linux基础上的修改版本,所以很多配置都和Centos差不多。最近实验室由于做测试的需要在服务器上安装了一个elastix操作系统。elastix可以通过网页访问,也可以通过SSH访问,用起来还是很方便的。
为了使服务器更好用一些,我打算在服务器上安装图形界面。下面简单介绍一下安装的具体过程。
1、在终端命令行中输入:# yum grouplist
显示自己系统上已经安装的组件
2、#yum groupinstall “X Window System”
#yum groupinstall “GNOME Desktop Environment”
两个命令来安装XWindow 和gnome组件,这个过程可能要花好久
3、然后重启服务器。
4、再次登录后进入的还是命令行界面,这是因为新安装的xwindow图形界面默认是在后台启动的,在此不需要对此进行更改(因为服务器我相信一般都是不配显示器的,只需要通过远程登录来控制就可以了)
5、安装vnc 同样采用yum安装即可,好像是yum install vnc ,然后需要对vnc进行一下配置
#vi /root/.vnc/xstartup
把其中的
unset SESSION_MANAGER
exec /etc/x11/xinit/xinitrc
两行前面的#号去掉。
6、然后在终端输入# vncserver 来启动vnc。 至此就可以通过Windows系统的vnc软件来登录服务器的vnc图形界面了。
下面说一下中文化的问题,因为elastix默认安装的是英文操作系统,所以它对中文的显示是乱码,在服务器上安装的firefox显示中文也是乱码。通过以下步骤可以让系统显示中文
1、 #yum install fonts-chinese 安装中文字体。
2、 # vi /etc/sysconfig/i18n 改为如下所示:
LANG=”en_US.UTF-8″
#LANG=”zh_CN.GBK” (我还是比较喜欢开始菜单显示英文,所以把这行注释掉了)
SUPPORTED=”zh_CN.GBK:zh_CN.zh:en_US.UTF-8:en_US:en”
SYSFONT=”latarcyrheb-sun16″
3、然后重启电脑就可以了,如果你还想有中文的输入法可以在终端# yum install scim-pinyin来安装。
好了,到这应该就可以了,收工~~~
十一 02
HDWiki是中国第一家拥有自主知识产权的中文WIKI系统,它的功能十分强大,而且设计也很合理,现在也十分受欢迎,但美中不足的就是HDwiki的排版功能,文章排版后效果很差。
在此介绍一种在HDWiki中插入word文档的方法,可以把word文档完整的插入到HDWiki中,而且产生的页面效果和word中的效果一样,不过操作起来有些麻烦,汗。。。
1、用word打开相应的文件,选择“文件”菜单中的“保存为网页”,然后在保存的类型中选择“筛选过的网页(*.htm ,*.html) ” ,选择好保存的文件名和保存路径,然后选择“保存”。
2、此时在你的保存目录中有一个.htm文件和一个文件夹(文件夹中有原来word文件中的图片),此时用记事本打开相应的.htm的文件,全选(ctrl+A)并复制(ctrl+C)。
3、进入我们wiki中,然后选择“新建词条”,填好新建的词条名,选择好需要保存的分类,然后选择“建立词条”;
4、进入建立词条的页面,直接选择里面的“高级功能”选项卡,点击其中第一行最右面的“< >源代码”,然后在下面的文本输入区中粘贴刚复制好的内容(在其中点鼠标左键,然后粘贴(ctrl+V))。这样你的文本输入区有好多不认识的代码(不要紧,我们不需要认识它们);
此时切换到”简单功能”选项卡(在“高级功能”选项卡旁边),这时你应该看到你的文档内容了把,而且格式什么的没什么太大出入(是不是很好啊)
5、现在文档中以前是图片的地方还不能显示,一些空白框,我们现在需要把图片放在里面。这个过程有点麻烦,需要些耐心。
用鼠标左键点击那个没有正常显示的图片,按delet键删除。然后选择“插入图片”功能,会弹出一个对话框,点击“浏览”,进入刚刚我上面提到的那个保存文档图片的文件夹,然后选择需要更换的图片,如果不知道该更换哪张,可以打开原始文档和那个文件夹(用图标缩略图显示会比较好看些)进行对照。然后选择图片大小为最大的右边的最大 500*800;然后选择对齐方式为“居中”,图片模板选择最左边的“图片”(以上三点很重要)然后点“确定”就可以了。
按照上面的方法把所有图片都加进去后,这个词条就建好了,这个方法我觉得还是很实用的,希望可以方便大家~~~
十一 02
之前在CSDN、新浪都建立过博客,在那些博客站点自己的自主性很差,有些不能备份,有些广告泛滥,太乱了。现在终于发现免费的支持wordpress的站点,现在准备把之前的博客内容搬过来,以后就准备在这安家了,也希望有越来越多的人参观我的博客 ^_^
Recent Comments