
C++
cbib_cat
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
头文件中只有结构的预先声明,未有定义
我在头文件中,预先声明了一个结构,结构的定义在cpp文件中。头文件定义如下:#ifndef _TEST_H #define _TEST_H #endif struct myTest; class testClass { int a; myTest b; // myTest *b; }; 我在类中,定义了一个该结构的成员变量,编译有错误:该结构未定义。换成指针类型就可以了,如注释的语句。为什么会出现该问题呢?在网上查了一些相关内容,是说结构myTest没有定义,就不知道该原创 2010-12-31 09:25:00 · 1047 阅读 · 1 评论 -
C++变量在栈上的布局
在笔试、面试中,经常有这样的题目:double a = 2.2; int b = *(int *)&a;问b的值是多少?在C++中,double型变量占8个字节,int型变量占4个字节。所以b的值,就是a中的4个字节构成的整数值。这样,我们如果知道a在内存上如何存放,就可以得到b的值。数据的存放,根据CPU的不同,有大端和小端方式。Intel的CPU使用的是小端方式,即:低位数据放在低地址,高位数据放在高地址。在栈上,分配方式为地址递减,即:先定义的变量,放在高地址出,后定义的变量放在低地址处。举例说明:原创 2011-05-16 16:45:00 · 945 阅读 · 0 评论 -
裘宗燕:C/C++ 语言中的表达式求值
经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?” m = 1; n = m+++m++; 最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5: a = 4; cout C++ 不是规定 要弄清这些,需要理解的一个问题是:如果程序里某处修改了一个变量(通过赋值、增量/减量操作等),什么时候从该变量能够取到新值?转载 2011-11-02 08:59:18 · 547 阅读 · 0 评论 -
RAII惯用法:C++资源管理的利器
RAII惯用法:C++资源管理的利器 RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition IsInitialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。 我记得第一次学到RAII惯用转载 2011-11-28 08:48:12 · 512 阅读 · 0 评论