2012年9月11日

摘要: 【补充】mutable关键字有时我们希望类的数据成员即使在const成员函数中,依然是可以修改的,这时就可以把它们声明为mutable来实现。这样的应用,比如记录各种操作的调用次数,这时,即使在const中,依然要修改计数器,就可以将计数器变量设置为mutable的。【补充】this指针与const类ClassSample中:非const的成员函数中,this的类型是一个指向类类型的const指针,相当于:ClassSample const *this;这时,可以改变对象,但不能让this指向另外一个地址;在const的成员函数中,this的类型是一个指向const类类型的const指针,相当 阅读全文
posted @ 2012-09-11 15:43 做个不善的人 阅读(540) 评论(0) 推荐(0)
 
摘要: 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1) 并行设备的硬件寄存器(如:状态寄存器)2) 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)3) 多线程应用中被几个任务共享的变量编译器在编译代码时,会进行自动优化,用以产生优化指令。同上操作系统和一些线程同样也会对你所定义的一些变量做出一些你所不知道的更改。这样的更改我们称为,隐式修改,因为你不知道 阅读全文
posted @ 2012-09-11 10:45 做个不善的人 阅读(380) 评论(0) 推荐(0)