C++复习笔记一
要想成为资深的高级测试工程师,白盒还是要会的,白盒要求懂代码,虽然在大学的时候,Java,C++,C,汇编语言。。都学过,但是已经很久很久不怎么用,淡忘了不少,所以,趁现在跳槽的空闲期,补习一下这些知识。由于淡忘的基础较多。。所以从基本语句开始复习,不过因为有基础,会适当加快速度。 第一本复习教材是老版的Jesse Liberty的《21天学会C++》, 目前使用环境是VC++6.0和《C/C++程序设计学习与试验系统2009.6》 (推荐一下这个C/C++试验系统,以前用过2007版,觉得挺好的,最近...
C++语法总结(2)
1 const 与volatile 的用法 1 const #includeconio.h #includeiostream.h //行参数指向const 类型变量的指针 void display_c(cons int * pi) { cout"display_c:"*piendl; } //行参为普通类型变量的指针 void display(int *pi) { cout"display_c:"*piendl; } //const 类型变量 const int i1=1; //error i1=3;...
程序员必知:C/C++面试题(3)
1.写出下面程序的输出 class abc; void del(abc *pobj){ delete pobj; } class abc{ public: abc(){ printf("abc\r\n"); } ~abc(){ printf("~abc\r\n"); } }; int main() { abc *pobj = new abc; del(pobj); } 2.写出下面程序的输出 void* operator new(size_t size) { printf("malloc %u\r\n"...
程序员必知:C/C++面试题(2)
一、输入一个n ,然后在屏幕上打印出NxN 的矩阵! 例如, 输入一个3 ,则 1 2 3 8 9 4 7 6 5 输入一个4 ,则 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 参考答案: #includestdio.h #includeconio.h #define N 10 void printCube(int a[][N],int n); void main() { int a[N][N],n; printf("input n:\n"); scanf("%d",n...
c++中explicit关键字的含义和用法
c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class MyClass { public: MyClass( int num ); } .... MyClass obj = 10; //ok,convert int to MyClass 在上面的代码中编译器自动将整...
C++中string和string.h的作用和区别
#include string .h void main() { string aaa = " abcsd d " ; printf( " looking for abc from abcdecd %s\n " , (strcmp(aaa, " abc " )) ? " Found " : " Not Found " ); } 不能正确执行,提示说是string类型没有定义 而下面: #include string using namespace std; void main() { string aa...
浅析C++中的序列点
int i = 3; i = i++; cout i; 结果是什么?有人可能会说是3,也有人可能会说是4,更多的人在骂出题的人白痴,但这语句究竟有何问题呢?未必每个人都清楚。 有些人也许马上会说,这是“未定义行为”。没错,这是一个典型的未定义行为。i = i++这个表达式合乎C++语法,能够顺利编译通过,但是执行的结果,标准说“未定义”。为什么是“未定义”,深究起来,要从序列点说起。 序列点是程序中这样的一些点:通俗地说,执行至此,之前的语句都已经彻底执行干净执行完了,之后的语句还完全没开始执行;更常见...
完整的学习C++的读书路线图
完整的学习C 的读书路线图(1) 完整的学习C 的读书路线图(2) 完整的学习C 的读书路线图(3) 完整的学习C 的读书路线图(4) 完整的学习C 的读书路线图(5)...
完整的学习C++的读书路线图(4)
浅谈内存泄漏 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class...
完整的学习C++的读书路线图(5)
printf()函数参数格式详解 printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,如省略表示指定空位不填。 ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。 ⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修...
完整的学习C++的读书路线图(3)
指针 无疑,指针是C中最精髓的部分,因为指针可以在初始化后,可以同时拥有所指变量的两样东西——值和地址。这就给我们写程序时很大的空间,可以直接与内存对话!这也同样引出了千奇百怪的错误,不知道该怎么表达,其实最根本的是要明白我们在使用指针的时候,知道我们使用的究竟是她的哪个性质!是值?还是地址?于此对应的,指针有两种最基本的操作:一个是取地址,主要用于初始化时的赋值操作。必须是左值。 一个是取指向的值*,*可以取任意指向的值,返回其左值。 对指针的操作犹如打太极一般,有很多招式,但又归于一招。最基础的是分...
完整的学习C++的读书路线图(2)
指针,数组,类型的识别,参数可变的函数。 一.指针。 它的本质是地址的类型。在许多语言中根本就没有这个概念。但是它却正是C灵活,高效,在面向过程的时代所向披靡的原因所在。因为C的内存模型基本上对应了现在von Neumann(冯。诺伊曼)计算机的机器模型,很好的达到了对机器的映射。不过有些人似乎永远也不能理解指针「注1」。 注1:Joel Spolsky就是这样认为的,他认为对指针的理解是一种aptitude,不是通过训练就可以达到的http://www.joelonsoftware.com/pr ……...