分享一个简洁有趣的打印菱形的程序[C语言]

今天下午群里一位朋友问到的程序,挺简洁的,于是总结了一下,发在论坛里了,也copy到博客里来吧。 首先上程序和效果图: 程序: 效果图:

C++ 重载(overload)、重写(overrride)、重定义(redefine)总结

昨晚打开论坛,看到有朋友问了一个关于虚函数的问题,因为头太疼了,所以今天中午起床再看。 问题传送门:http://www.cppleyuan.com/viewthread.php?tid=7923   C++的一些特性好久没使用了,导致有些生疏了,所以查了一些资料,回顾了一下。   先来看几个概念: 重载(overload),重写(override,也称覆盖), 重定义(redefine,也称隐藏) (PS:第三个我不确定在英文中是否应该称为redefine,如有问题,留言告知,谢谢)

读《华为C++编程规范》笔记

首先给出我读的《华为C++编程规范》的下载传送门: (等待上传ing…) 说明:以下都是我把我在看规范的过程中,觉得对“我”有用的地方摘录了下来,注意,我把“我”字强调了,说明我摘录的几点你们不一定觉得好。我建议大家都看看这份编码规范(网上还有google的,也建议看看),当然,什么东西都不是绝对完美的,就像这份规范一样,大家可以选择性的吸纳,规范加个性(自己的习惯),两者结合,把握好自己平衡点,才是好的。 在这几天,我也会抽时间把google的C++编码规范做一下笔记,也希望更多的朋友一起学习,一起交流。 (交流论坛: C++奋斗乐园:www.CppLeYuan.com ) 附:最近在公司实习(今天刚辞了),给我最大的感受就是一个代码的规范性,以前写的都是几十行的小代码,所以无法感受到,真正看了大的项目,首先连一些基本(算是约定俗成的规范吧!),我都不知道,所以才额外关注了编码的规范问题!还有很好需要学的啊。。。 —————以下是笔记————– —–|排版|—– 1.对齐只使用空格键,不使用TAB键(对应原文件1.8) 说明:以免用不同的编辑器阅读程序时,因TAB键所设置的空格数目不同而造成程序布局不整齐,不要使用BC作为编辑器合版本,因为BC会自动将8个空格变为一个TAB键,因此使用BC合入的版本大多会将缩进变乱。 (个人说明:这个以前没有注意,那天在公司,header首先给我的VS2008改了几个选项,就包括这个,当然有点不明白,现在懂了) 2.在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。(对应1.11) 说明:采用这种松散方式编写代码的目的是使代码更加清晰。 由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在C/C++语言中括号已经是最清晰的标志了。 在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留两个以上空格。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (1) 逗号、分号只在后面加空格。 int a, b, c;   (2)比较操作符, 赋值操作符"="、 "+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格。 if (current_time >= MAX_TIME_VALUE) a = b [...]

关于C++中断言assert的转载及汇总

首先看MSDN上的解释: Evaluates an expression and, when the result is false, prints a diagnostic message and aborts the program. 1 2 3 void assert( int expression ); 断言assert是一个宏,该宏在<assert>中,,当使用assert时候,给他个参数,即一个判读为真的表达式。预处理器产生测试该断言的代码,如果断言不为真,则发出一个错误信息告诉断言是什么以及它失败一会,程序会终止。 通常当我们使用assert时,都在强烈说明一个含义:在这里必然如此。即assert是指你绝对确信不可能会发生的事。 摘录林锐博士高质量编程一书中相关内容。 ~~~~~~~~~~~~~~~~~~~~~~~~ 程序一般分为Debug版本和Release版本,Debug版本用于内部调试,Release版本发行给用户使用。 断言assert是仅在Debug版本起作用的宏,它用于检查“不应该”发生的情况。以下是一个内存复制程序,在运行过程中,如果assert的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。 1 2 3 4 5 6 7 8 9 void memcpy(void *pvTo, void *pvFrom, size_t size) { void *pbTo = (byte *) pvTo; [...]

[C++]类的自动类型转换和转换操作符

1.当构造函数只接受一个参数时,则该类可以与该参数类型相同的值转换。 看下面这个简单的例子: