摘要:
原文http://blog.csdn.net/liufei_learning/article/details/5391334一、 为什么需要命名空间(问题提出)命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突。在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。 1、全局变量的作用域是整个程序,在同一作用域中不应有两个或多个同名的实体(enuty),包括变量、函数和类等。例:如果在文件中定义了两个类,在这两个类中可以有同名的函数 阅读全文
摘要:
原文地址http://www.cnblogs.com/waynelu/archive/2012/07/01/2572264.html构造函数构造函数、析构函数与赋值函数是每个类最基本的函数。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A 产生四个缺省的函数,例如:1 A(void); // 缺省的无参数构造函数2 A(const A &a); // 缺省的拷贝构造函数3 ~A(void); // 缺省的析构函数4 A & operate =(const A &a); // 缺省的赋值函数默认构造函数与默认析构函数仅负责对象的创建和销毁,不做对象的初始化和 阅读全文
摘要:
原文地址http://blog.csdn.net/bug07250432/article/details/10150625 在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为: template......在 这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为一个类型,这样在.. 阅读全文
摘要:
原文地址http://blog.csdn.net/abc78400123/article/details/6779108 在用gdb调试,使用s 或n单步执行程序时,发现程序不是按顺序运行的,有时莫名其妙的执行到前面的语句去了,有时又执行到后面的语句,有时一次执行几条语句。后来查了下资料。原来这是编译时的优化问题所导致的。因为内核的编译是使用make命令的,所以要更改优化等级的话,只能修改makefile文件了。在makefile中,找到CFLAGS 然后在这加上-O0选项即可。当然这个makefile不好改,子目录太多。比如自己可以写一个程序,进行测试,如:gcc编译器下的截图gcc l.. 阅读全文