2012-07-13 22:11
⁄ 工业·编程
⁄ 共 2446字
前天看一个系统的代码,突然对面向对象和面向过程有了一些新的理解。简而言之,面向对象采用空间换时间的策略,面向过程采用时间换空间的策略,正因为采用不同的策略,就有了不同的应用场合。比如让你设计一个图像读取库,其中要设计一个获取图像大小的接口。
1)如果采用面向过程的方式设计,可能采用这样的设计:
//************************************************************* // 功能 ...
软件开发阅读全文
2012-07-13 22:08
⁄ 工业·编程
⁄ 共 553字
在公司一个同事问我:"什么时候应该用assert?比如某个函数的输入参数为一个指针,要进行有效计算,该指针必须非空,我弹出一个警告对话框来提示对方不就行了吗?干吗要用assert?我想问的是什么时候用对话框提示用户,什么时候用assert?"
这是一个值得思考的问题。首先明确assert(这里我说的是C++环境下)是需要在调试状态下才能生效的,在发布版是失效的。调试生效的事实告诉我们的是assert的一个重要作用是帮助开...
c++, 软件开发阅读全文
2012-07-13 22:05
⁄ 工业·编程
⁄ 共 1206字
std::string毫无疑问是一个很强大的字符串类,但比起MFC的CString类,也存在一些不足,比如字符串的大小写转换以及格式化字符串。这次我介绍一下std::string大小写转换的两个函数以及格式化std::string的两种做法。
/*! * /brief 将字符串中的大写字母变为小写。 * * /param SrcString [in&out]源字符串。 * /return 无。 */ static void string_ToLower(string &SrcString) { ...
c++, stl阅读全文
2012-07-13 21:57
⁄ 工业·编程
⁄ 共 1266字
今天公司研发部举行会议,讨论执行代码审查事宜。在讨论到一条:头文件不能放函数实现代码,我提出异议:内联函数应该例外。同事反驳说:内联函数的实现也可放进cpp文件。我摆出我的理由:如果是类的内部使用该类的内联函数,函数实现放哪都行(头文件和cpp文件都可以);但是如果外部调用类的内联函数同时该函数的实现又是放在cpp中,那会出现错误。同事于是问我会出现错误,当时我也没答上来。于是大家就...
c++阅读全文
2012-07-13 21:46
⁄ 工业·编程
⁄ 共 117字
总结了一下设计函数的一些心得:首先判断是否需要操作是否成功、值是否存在,若不需要,考虑直接返回操作结果(即由renturn语句返回而不是通过输出参数返回),毕竟这样外部调用比较方便,若需要,则应设计为通过输出参数返回操作结果值。
c++阅读全文
2012-07-13 21:39
⁄ 工业·编程
⁄ 共 813字
在C++的类的数据成员的访问权限分为三种:public、protect和private。private表示自己本类私有,不允许其它类的直接访问;protected表示自己及子孙可以访问,其它族类不允许直接访问,我们可以把它比作是本家族的共同财富;public表示向全社会都公开的,任何类都可以直接访问的。
一般而言,出于对数据成员封装性的考虑,我们往往把数据成员设置为protect和private的访问权限。但是最近...
c++阅读全文
2012-07-13 21:31
⁄ 工业·编程
⁄ 共 332字
使用VS开发,MSDN是必不可少的助手。但是在MSDN上搜索STL的相关知识,远远不如搜索MFC类或Win API那么顺畅。比如你要搜索vector类或者std::copy模板函数,你输入关键词:std::copy或者copy,基本上搜不到正确的信息,至少前十项不是说std::copy。
今天发现了一个MSDN搜索STL的一个小技巧。如果是搜索STL的模板类,请输入:类名 class。比如我要搜索vector,就输入:vector class。如果要...
msdn, 技巧阅读全文
2012-07-12 17:05
⁄ 工业·编程
⁄ 共 2993字
耦合性是程序结构中各个模块之间相互关联的度量。它取决于各个模块之间接口的复杂程度、调用模块的方式以及哪些信息通过接口。 一般模块之间可能的连接方式有七种,构成耦合性的七种类型。它们之间的关系为(由弱到强)
(1)非直接耦合(Nondirect coupling) 如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。 。 (2)...
c++阅读全文
2012-07-12 16:56
⁄ 工业·编程
⁄ 共 5897字
以下总结了C#与C++的差异,不一定全,主要目的是供准备从C++转到C#的程序员参考。其中一般仅仅叙述了C#各方面的特性,C++的特性在下面所列的每一个方面都跟C#不同,但不再赘述。
(1) C#中无指针,所有的对象被分成了值类型和引用类型两种,前者包括int, double, char等简单类型和struct,后者包括string, 数组和类。值类型在栈上分配,即使它是用new分配的;引用类型在堆上分配,即使它没有使用new分配。引用类型仅仅在栈上保...
c++, 差别阅读全文
2012-07-12 12:57
⁄ 工业·编程
⁄ 共 5053字
类WindowXp 开始菜单到现在基本上是完美实现,在功能上基本和WindowXp 与Vista 操作系统的开始菜单一样,界面当然漂亮,通过编程能实现风格多样,具有个性化的功能菜单。为了方便使用,本人对其进行了封装,库名曰:完美类WindowXp 开始菜单。 1、完美类WindowXp 开始菜单(CYisongStartMenu)有如下主要特点: a. 在C++环境实现,界面风格可实现自定义;...
软件开发阅读全文