C++
文章平均质量分 54
xiaobai_chen
这个作者很懒,什么都没留下…
展开
-
C++ : 编译单元、声明和定义、头文件作用、防止头文件在同一个编译单元重复引用、static和不具名空间
转 自:http://www.cnblogs.com/rocketfan/archive/2009/10/02/1577361.html 1. 编译单元:一个.cc或.cpp文件作为一个编译单元,生成.o。2. 普通数据类型的定义、声明,函数的定义、声明(类函数是一样的)。extern int x; // 变量是声明,并未实际分配地址,未产生实际目标代码 voi转载 2016-10-25 16:50:01 · 498 阅读 · 0 评论 -
接收数组的函数模板对参数类型推断
根据模板参数的不同,输入相同数组,类型参数的推断结果不同templatevoid test1(const T1 &arr){ T1 t1; cout << typeid(arr).name() << endl; cout << typeid(t1).name() << endl;}templatevoid test2(const T2(&arr)[size]原创 2016-11-09 11:42:16 · 489 阅读 · 0 评论 -
C++中虚函数与普通函数区别
1.虚函数(impure virtual) C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。 子类可以重写父类的虚函数实现子类的特殊化。2.普通函数(no-virtual) 普通函数是静态编译的,没有运行时多态,只会根据指针或引用的静态类型对象,调用自己的普通函数。 普通函数是父类为子类提供的“强制实原创 2016-11-01 22:21:05 · 2848 阅读 · 0 评论 -
关于返回局部变量的指针或引用
C++ primer中说“不要返回局部变量中的引用和指针”但是今天一个简单的程序跑出来结果正确,很诧异……int *fun1(){ int i = 100; int *j = &i; return j;}int &fun2(){ int i = 100; return i;}int main(){ int *p = fun1(); cout << *p原创 2016-11-14 17:39:14 · 287 阅读 · 0 评论 -
重载和using声明、using指示
using 声明:using 命名空间::成员;一次只引入命名空间中的1个成员。令名字在局部作用域有效,外层作用域的同名实体将被隐藏。using 指示:using namespace 命名空间;使得某个特定的命名空间中名字都可见。令整个命名空间内容都有效,而通常命名空间中含有一些不能出现在局部作用域的定义,因此,using指示一般看作出现在最近的外层作用域中。原创 2016-11-16 15:24:40 · 529 阅读 · 0 评论 -
变量,常量,静态变量存储的位置
常见的存储区域可分为:1、栈由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。2、堆由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,程序会一直占用内存,导致内存泄漏,在程序结束后,操作系统会自动回收。3、全局/静态存储区转载 2017-02-12 16:04:42 · 655 阅读 · 0 评论