随笔分类 -  C++

ctemplate partitial specialization模板偏特化
摘要:http://www.cppblog.com/SmartPtr/archive/2007/07/04/27496.aspxNote: The 2nd one compiles fail on VC2005.??C++类模板的三种特化 By SmartPtr(http://www.cppblog.com/SmartPtr/) 说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。这里用一个简单的例子来说明这三种情况:.. 阅读全文
posted @ 2013-03-27 18:11 _Smileヾ 阅读(397) 评论(0) 推荐(0) 编辑
C语言试题
摘要:1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n)[10]; struct MyStruct { char dda; double dda1; int type ; }; MyStruct ... 阅读全文
posted @ 2012-12-19 01:23 _Smileヾ 阅读(465) 评论(0) 推荐(0) 编辑
左值和右值
摘要:http://blog.csdn.net/talentluke/article/details/6101748 阅读全文
posted @ 2012-11-06 17:04 _Smileヾ 阅读(176) 评论(0) 推荐(0) 编辑
a+=(a++);
摘要:1 因为a++有一个压栈的操作,压入堆栈以后,变量是不能再被改变的。2 一行语句先执行所有的左++,再执行当前行语句,再执行当前行所有右++(++a)+=a;拆开写相当于:++a;a+=a;(++a) += (a++);拆开写相当于:++a;a+=a;a++;3 (++a)= (++a)+ (a++);拆开写相当于:++a;++a;a=a+a;a++; (++a)= (a++)+ (++a);拆开写相当于:++a;++a;a=a+a;a++;两个表达式是一样的。 阅读全文
posted @ 2012-11-06 16:14 _Smileヾ 阅读(375) 评论(0) 推荐(0) 编辑
内存对齐规则
摘要:这里有三点很重要: 1.每个成员分别按自己的方式对齐,并能最小化长度。2.复杂类型(如结构)的默认对齐方式是它最长的成员的对齐方式,这样在成员是复杂类型时,可以最小化长度。3.对齐后的长度必须是成员中最大的对齐参数的整数倍,这样在处理数组时可以保证每一项都边界对齐 阅读全文
posted @ 2012-11-06 11:09 _Smileヾ 阅读(168) 评论(0) 推荐(0) 编辑
C++成员初始化列表
摘要:类对象的构造顺序是这样的: 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员 初始化阶段可以是显式的或隐式的,取决于是否存在成员初始化表。隐式初始化阶段按照声明的顺序依次调用所有基类的缺省构造函数,然后是所有成员类对象的缺省构造函数。 2.进入构造函数后在构造函数中执行一般计算 计算阶... 阅读全文
posted @ 2012-10-20 11:44 _Smileヾ 阅读(4220) 评论(1) 推荐(0) 编辑
为什么C++不能有虚构造函数,却可以有虚析构函数
摘要:class B{ public : virtualvoid m1(); virtualvoid m2(); }; class D : public B{ virtualvoid m1(); } C++的动态绑定使用vtable(虚成员函数... 阅读全文
posted @ 2012-10-12 20:14 _Smileヾ 阅读(3915) 评论(0) 推荐(0) 编辑
扫盲贴--模板函数、函数模板,模板类、类模板的区别
摘要:名正言顺 中国有句古话:名不正则言不顺。一样东西,名字如果用的不好,不但听起来不舒服,而且真实的本质也容易被掩盖。如果一样东西有一个好名字,我们就能更容易的记住它和理解它。 在现代汉语中,许多词的重点都在后面,比如下面我们经常看到的两个词语。 冰雪聪明。 聪明冰雪。 冰雪聪明强调的是聪明,她像冰雪一样的聪明。 聪明冰雪强调的是冰雪,她很聪明,看上去更是冰雪般的玲珑剔透纯洁。 在C++中有好几个这样的术语,但是我们很多时候用的并不正确,几乎是互相替换混淆使用。下面我想彻底辨清几个术语,这样就可以避免很多概念上的混淆和使用上的错误。 这几个词是: 函数指针——指针... 阅读全文
posted @ 2012-10-05 11:55 _Smileヾ 阅读(222) 评论(0) 推荐(0) 编辑
前置声明使用小结。。
摘要:http://blog.csdn.net/rogeryi/article/details/1439597 这篇文章很大程度是受到Exceptional C++ (Hurb99)书中第四章 Compiler Firewalls and the Pimpl Idiom (编译器防火墙和Pimpl惯用法)... 阅读全文
posted @ 2012-10-04 15:03 _Smileヾ 阅读(322) 评论(0) 推荐(0) 编辑
C++中的虚函数(virtual function)
摘要:C++中的虚函数(virtual function) 阅读全文
posted @ 2012-10-04 13:58 _Smileヾ 阅读(137) 评论(0) 推荐(0) 编辑
对象的内存分布图
摘要:http://blog.csdn.net/pathuang68/article/details/4105626 阅读全文
posted @ 2012-10-04 13:47 _Smileヾ 阅读(209) 评论(0) 推荐(0) 编辑
虚析构函数问题:为什么要将基类的的析构函数设成虚的?
摘要:http://blog.csdn.net/pathuang68/article/details/4156308 阅读全文
posted @ 2012-10-04 13:25 _Smileヾ 阅读(165) 评论(0) 推荐(0) 编辑
什么是智能指针
摘要:http://hi.baidu.com/moveable_feast/item/b586c53a10f02e48023edcab 实现 http://www.oschina.net/code/snippet_54334_882 阅读全文
posted @ 2012-10-03 14:05 _Smileヾ 阅读(231) 评论(0) 推荐(0) 编辑
关于书上说的“编译的时候分配内存”
摘要:一下均为网络上收集的资料: 1、所谓在编译期间分配空间指的是静态分配空间(相对于用new动态申请空间),如全局变量或静态变量(包括一些复杂类型的常量),它们所需要的空间大小可以 明确计算出来,并且不会再改变,因此它们可以直接存放在可执行文件的特定的节里(而且包含初始化的值),程序运行时也是直接将这... 阅读全文
posted @ 2012-10-02 17:47 _Smileヾ 阅读(3928) 评论(0) 推荐(0) 编辑
c++中的全局变量
摘要:1.可以定义的位置 main函数所在文件的函数体外 其它cpp文件的函数体外 不能放在h文件中,因为h文件可能会有多次引用,会爆重复定义 2.引用方式,c++里面 通过extern 加变量的定义语句的方式 这样所有引用的这个变量只会是一个值 c中的全局变量 1.可以定义的位置 main... 阅读全文
posted @ 2012-10-02 17:44 _Smileヾ 阅读(476) 评论(0) 推荐(0) 编辑
编译,运行期
摘要:看这样一段代码。 view plain #include usingnamespace std; class A{ public: virtualvoid f(){cout"A" }; class B:public A { private: void f(){... 阅读全文
posted @ 2012-10-02 17:32 _Smileヾ 阅读(293) 评论(1) 推荐(0) 编辑
回调函数
摘要:回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。回调函数在windows编程使用的场合很多,比如Hook回调函数:MouseProc,GetMsgProc以及EnumWindows,DrawState的回调函数等等,还有很多系统级的回调过程。本文... 阅读全文
posted @ 2012-10-02 15:48 _Smileヾ 阅读(475) 评论(0) 推荐(0) 编辑
c++ 举例 单件模式 .....
摘要:C++的单件模式 双件模式! N件模式!(转载) 2009-12-10 22:23 什么是单件模式? 在面向对象的程序设计中,对群体数据的管理一般都会设计一个管理类,但这个管理类有个特点,就是在整个程序中不需要多个副本,否则多个副本会占用无谓的内存,而且对于抽象模型会不易理解。 这时就需要设计一个只... 阅读全文
posted @ 2012-09-08 21:36 _Smileヾ 阅读(436) 评论(0) 推荐(0) 编辑
C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容 【转】 参考度4.6星
摘要:C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容 【转】 参考度4.6星 源地址:http://blog.csdn.net/daheiantian/article/details/6438782 ---------------------... 阅读全文
posted @ 2012-08-11 08:36 _Smileヾ 阅读(505) 评论(0) 推荐(0) 编辑
c++ cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
摘要:学C++的时候,这几个输入函数弄的有点迷糊:1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar() 附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符 1、cin>> 用法1:最基本,也... 阅读全文
posted @ 2012-08-06 01:09 _Smileヾ 阅读(254) 评论(0) 推荐(0) 编辑