07 2015 档案

C++类大小
摘要:对于C++中类的大小,主要针对于无成员的空类大小,编译器会对该类进行优化,情况主要分为是否有虚表(虚函数)两种类型,对于无虚函数的类,该类大小均为1个字节(编译器插入一个char表示该类的存在),而出现虚函数的类,该类大小为虚表指针大小4个字节(32位系统)。如出现继承,情况又不一样,不同编译器有不... 阅读全文

posted @ 2015-07-16 13:12 kkford 阅读(232) 评论(0) 推荐(0)

C++ 初始化列表
摘要:在C++构造函数中,我们一般倾向于将类成员放在初始化列表中进行,但需要注意的是初始化的顺序必须与成员声明顺序保持一致,否则在成员相互依赖时会发送不可预知的错误;另外在函数体中通过上两篇文章我们知道构造函数会完成虚表的构造,另成员在初始化列表中只需调用复制构造函数而在函数体中可能会生成临时对象(根据初... 阅读全文

posted @ 2015-07-09 13:27 kkford 阅读(244) 评论(0) 推荐(0)

C++ 中的形参与返回值
摘要:函数调用时,形参对象和返回对象均采用引用方式进行(临时对象作为中介),当一个对象作为参数(非引用)被函数调用时,该对象会通过复制构造函数获得一个临时对象,该临时对象以引用方式传递给函数,简言之,函数会被做以下处理:void foo(A x);A afoo( a);处理后:void foo(A& x)... 阅读全文

posted @ 2015-07-07 17:40 kkford 阅读(581) 评论(0) 推荐(0)

C++中的复制构造函数
摘要:与C++中的构造函数相同,复制构造函数在对象生成过程中同样进行插入对应的Vtable虚表,但在成员变量赋值时,除具有复制构造函数的成员对象外,编译器合成复制构造函数其余均采用”Bitwise copy semantics(位逐次拷贝)”语义实现对象成员的拷贝,无论处于何种语境。测试代码如下:#inc... 阅读全文

posted @ 2015-07-06 11:43 kkford 阅读(287) 评论(0) 推荐(0)

导航