2011年5月24日

Qt写Excel文件程序代码

摘要: 1 void writeDataToExcel::process() 2 { 3 QString fileName = QFileDialog::getSaveFileName(0, QObject::tr("Save File"), "", QObject::tr("file (*.csv)")); 4 if ("" == fileName) 5 { 6 return; 7 } 8 9 QTextCodec *code = 0;10 code = QTextCodec::codecForName("gb 阅读全文

posted @ 2011-05-24 16:13 ActiveChange 阅读(2607) 评论(0) 推荐(0) 编辑

可重入与线程安全

摘要: 在单线程的进程中,有且仅有一个控制流,函数代码即使是不可重入的,或者线程不安全的,也没有问题。但在多线程的程序中,有可能同一段代码同事被多个控制流并发的访问。这个时候为了保证资源的完整性,要为多线程程序编写的代码必须是可重入的和线程安全的。可重入和线程安全是两个相互独立的概念。可重入一个可重入的函数不能为后续的调用保持静态(或全局)数据,也不能返回指向静态(或全局)数据的指针。函数中用到的所有的数据,都应该由该函数的调用者提供。一个可重入的函数不能调用不可重入的函数。线程安全一个线程安全的函数通过“锁”来bo保护共享资源不被并发地访问。线程安全仅关心函数的实现,而不影响它的外部接口。任何一个不 阅读全文

posted @ 2011-05-24 15:01 ActiveChange 阅读(1626) 评论(0) 推荐(0) 编辑

需要重构的代码(读重构)

摘要: 1.重复代码一个模块中存在一个以上的地方有相同的程序结构,则需要好好思考下是否需要处理。2.过长的函数函数的长短不是看其行数的长短,而是看其名称是否能够解释其用途。在于“做什么”和“如何做”之间的语义距离。3.过长的参数列表参数过多,导致使用者难以理解。4.类定义的过大一个类中做了太多的事情,类变得庞大,实例变量太多。5.封装变化一个类中有些东西受外界的影响,容易产生变化。尽量把这些变化的东西放在一个新的类中。使之根据外界的变化做出相应的反应。6.少用switch使用面向对象编程,要少用switch和case语句,尽量用多态来替换它。7.冗余类删除不再使用的,没有任何价值的类。(包括检查是否有 阅读全文

posted @ 2011-05-24 13:26 ActiveChange 阅读(123) 评论(0) 推荐(0) 编辑

导航