C++
巧克力腹肌
亲切,性格好,肥婆
展开
-
volatile编写多线程程序的好帮手(转)
<br /><br /> 多线程的程序是出了名的难编写、难验证、难调试、难维护,这通常是件苦差事。不正确的多线程程序可能可以运行很多年也不出一点错,直到满足某些临界的条件时,才出现意想不到的奇怪错误。<br /><br /> 不用说,编写多线程程序的程序员需要使用可能得到的所有帮助。这期专栏将专注于讨论竞争条件(race conditions)——这通常是多线程程序中各种麻烦的根源——深入了解它并提供一些工具来防止竞争。令人惊异的是,我们将让编译器尽其所能来帮助你做这些事。<br /><br /转载 2010-12-20 00:22:00 · 346 阅读 · 0 评论 -
模板类之(数组)
#ifndef ARRAY_CLASS#define ARRAY_CLASS#include#includeusing namespace std;#ifndef NULLconst int NULL = 0;#endif//错误类型集合:数组大小错误,内存分配错误和下标越界错误enum ErrorType{invalidArraySize,memoryAllocationError,indexOutOfRange};//错误信息char *errorMsg[]原创 2010-12-23 16:32:00 · 907 阅读 · 0 评论 -
另一篇我最喜爱的关于const 的文章,老外写的
-------无意中逛到的收获,太棒了,虽然文章米有写出来const的重要性,但是对于很多关于const的比较复杂的使用,文章都给出来了,还有很多不合理的使用也给出来,都配有相关的例子,非常好理解。oh ,my god,我爱死这篇文章了!!!废话少说,上菜!Here's a start. Itdocuments what the keyword "const" means in various places within adeclaration. It does not go into the r转载 2010-12-21 14:26:00 · 466 阅读 · 0 评论 -
Const Correctness in C++(转)
<br />Const Correctness in C++IntroductionA popular USENET joke goes:In C, you merely shoot yourself in the foot.<br />In C++, you accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical care is i转载 2010-12-21 13:32:00 · 857 阅读 · 0 评论 -
你知道吗:char **p 和 const char **p 类型不相容(转)
--------不晓得出处,但是感谢作者,还有my honey,我一开始就不懂,sigh~~。char **p和const char **p是两种不相容的类型,因为它们是两种不同的类型。如果你理解这句话,可以不用往下看了。先看这个代码:1 foo(const char **p){ }2 3 void main(int argc, char **argv)4 {5 foo(arvg);6 }如果编译这段代码,编译器会发出一条警告消息:line 5:warning argument is incompat转载 2010-12-21 16:50:00 · 742 阅读 · 0 评论 -
const的一些使用小细节
<br /><br /><br />1. 可以避免不必要的内存分配<br /> #define STRING "abcdefghijklmn/n"<br /> const char string[]="abcdefghijklm/n";<br /> ... printf(STRING); //为STRING分配了第一次内存<br /> printf(string); //为string一次分配了内存,以后不再分配 ...<br /> printf(STRING); /*为STR转载 2010-12-20 00:13:00 · 336 阅读 · 0 评论 -
理解const
看了挺多中文关于中文const使用的文章,还是有点懵懵懂懂,知道看到这篇英文文章,豁然开朗,看来以后还是要多看看老外写的东西。1、 const int * & iFrom right to left:"i is a reference to a pointer to a constant int".Except I've broken my right to left rule here byreading the tokens inthe orderSee below for the expla原创 2010-12-19 23:47:00 · 406 阅读 · 0 评论 -
C++关键字mutable(转滴)
<br /><br />关键字mutable 是一个奇怪的修饰符(specifier),它只能够用于一个类的非静态数据成员。下面我将讨论 mutable 的语义和用法,但是首先我要解释一下 C++ 对象模型的一个关键概念。<br />对象的状态<br /> 一个对象的状态由其非静态数据成员的值构成,因此,修改一个数据成员将会改变整个对象的状态。将一个成员函数声明为 const 能够保证它不会改变对象的状态。<br /> 然而在一些情况下,对象的逻辑状态与其物理状态之间可能有差别。例如,转载 2010-12-20 00:23:00 · 370 阅读 · 0 评论 -
const ,mutable,volatile()
<br /><br />总结的还不错,转过来吧,忘了就看看<br />const <br /><br /> 1、const修饰各种变量的用法.<br /> a、取代define<br /> #define D_INT 100<br /> #define D_LONG 100.29 <br /> ………<br /> const int D_INT = 100;<br /> cons转载 2010-12-20 00:08:00 · 317 阅读 · 0 评论 -
小儿科备忘一下
1、关于引用:引用,可以看成是另一个变量的别名。int i,j;int & ri = i; //ri是i的别名j = 10; ri = j; //相当于i = j;,不要理解成ri又变成j的别名了 引用使用的注意事项:(1)声明引用时必须同时对它初始化,使它指向一个已经存在的对象。例如:int & ri; //error,引用应该在声明的时候初始化ri = i; (2)一个引用被初始化后,就不能改为指向其它对象,也就是说,一个引用从诞生起 ,就必须确定是哪个对象的别名,而且始终只能作为这一个变量原创 2010-12-25 14:01:00 · 391 阅读 · 0 评论