C++
dongzhongshu
这个作者很懒,什么都没留下…
展开
-
为什么加上这个就能用?using namespace是什么意思?
来源:http://www.ucnu.cn/software/p676/A67683089.shtml为什么加上这个就能用?using namespace是什么意思?Posted on 10月 13rd, 2007然后在头文件中写上 #include 头文件尾上加using namespace std; 网友回答:网友:rgbcn命名空间转载 2008-01-18 16:10:00 · 3024 阅读 · 2 评论 -
什么是函数对象?
<br />刚开始看到这个名字,还以为是函数呢,谁知道大错特错!<br /> 顾名思义,就是在某种方式上表现得象一个函数的对象。典型地,它是指一个类的实例,这<br />个类定义了应用操作符operator()。 <br /> <br />函数对象是比函数更加通用的概念,因为函数对象可以定义跨越多次调用的可持久的部分<br />(类似静态局部变量),同时又能够从对象的外面进行初始化和检查(和静态局部变量不同)。<br />例如: <br /> <br />class Sum { <br />原创 2011-02-23 17:31:00 · 9362 阅读 · 2 评论 -
友元函数模板问题
<br />今天下午写了一个友元函数的模板,其中在编译的时候碰到了一些问题。首先在编译的时候提示“note: (if this is not what you intended, make sure the function template has already been declared and add <> after the function name here)”,<br />查了一下网页才知道,原来友元函数在类内声明时按照国际标准是:<br />friend ostream& operator原创 2011-02-22 16:57:00 · 4325 阅读 · 0 评论 -
const 在C++中的主要作用
<br />1、如果放在函数前面,表示该返回变量不能被修改。<br /> 如果给以“指针传递”方式的函数返回值加const 修饰,那么函数返回值(即指针)<br />的内容不能被修改,该返回值只能被赋给加const 修饰的同类型指针。<br />例如函数<br />const char * GetString(void);<br />如下语句将出现编译错误:<br />char *str = GetString();<br />正确的用法是<br />const char *str = GetStr原创 2011-02-24 11:16:00 · 704 阅读 · 0 评论 -
关于线程库pthread_cond_signal丢失的问题
<br />这两天写了一个关于C++的线程库,刚开始老是出现信号丢失的问题,百思不得其解。后来才发现原来要pthrea_cond_wait和pthread_cond_signal之间要用一个条件变量来控制。例如:while(count==0)pthread_cond_wait();count--;<br />在pthread_cond_signal处,要用if(count==0)pthread_cond_signal();count++.<br />下面是我写的线程池代码:<br />.h文件:<br />原创 2010-12-08 17:03:00 · 5302 阅读 · 0 评论 -
string::size_type - what is this?
It's a type. A datatype. Like int or long or size_t or unsigned char.You know how in C, size_t is an unsigned integer large enough to represent any array size possible? The C++ std::string class provides string::size_type as an integer datatype large enoug原创 2010-08-20 17:19:00 · 1225 阅读 · 0 评论 -
IOCP模型总结(转)
IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建新线程的开销原创 2010-05-21 16:55:00 · 1717 阅读 · 0 评论 -
C++中指针与引用的区别?
困惑我已久的问题,先解释如下:从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的:指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递原创 2010-07-07 12:32:00 · 579 阅读 · 0 评论 -
C++技巧:理解inline的使用和避免
<br />本文来自编程界www.ibiancheng.cn<br />inline语句——多么棒的主意啊!它们看起来像函数,它们产生的效果也像函数,它们在各方面都比宏好得太多太多,而你却可以在调用它们时不招致函数调用的成本。你还有什么更多的要求呢? <br /> 实际上你得到的可能比你想的更多,因为避免函数调用的成本只是故事的一部分。在典型情况下,编译器的优化是为了一段连续的没有函数调用的代码设计的,所以当你 inline 化一个函数,你可能就使得编译器能够对函数体实行上下文相关的特殊优化。大多数编译器原创 2010-06-30 17:33:00 · 681 阅读 · 0 评论 -
C语言的一种老式写法
<br />今天在看程序时,发现一个地方很令我费解:<br />void ring_init(ring)<br />RING *ring;<br />{<br /> ring->pred = ring->succ = ring;<br />}<br />后来注意到,ring的声明放在了函数的后面,而参数中并没有ring类型的声明,问了问别人才知道,这是一种C语言老式函数的写法。跟void ring_init(RING* ring){...} 一个意思。<br /> <br />孤陋寡闻了。原创 2011-03-22 15:38:00 · 2266 阅读 · 0 评论