摘要: 如果函数已经被声明为inline,内联函数已经在编译期间它的调用点上就被展开;而虚拟函数调用的决定则要等到运行时刻在执行程序内部的每个调用点上系统根据被调用对象的实际基类或派生类的类型来决定选择哪一个虚拟函数实例.内联不是强制性的,你只是向编译器提出这个建议,允许它在可以内联的时候采取内联形式。而虚... 阅读全文
posted @ 2015-09-01 22:02 balingybj 阅读(1900) 评论(0) 推荐(0) 编辑
摘要: 一般运算符重载在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。成员函数的形式比较简单,就是在类里面定义了一个与操作符相关的函数。友元函数因为没有this指针,所以形参会多一个。// 运算符重载,这里又叫赋值函数string& operat... 阅读全文
posted @ 2015-08-31 13:12 balingybj 阅读(2152) 评论(0) 推荐(0) 编辑
摘要: 一、纯虚函数定义 纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”二、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个 阅读全文
posted @ 2015-08-30 22:49 balingybj 阅读(45505) 评论(1) 推荐(15) 编辑
摘要: 就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。 一个定义为volatile的变量是说这变量可能... 阅读全文
posted @ 2015-08-30 22:27 balingybj 阅读(649) 评论(0) 推荐(0) 编辑
摘要: C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如in... 阅读全文
posted @ 2015-08-30 16:49 balingybj 阅读(3334) 评论(0) 推荐(0) 编辑
摘要: 1. HTTP请求格式 做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP协议传输的消息也是这样规定的,每一个HTTP包都分为HTTP头和HTTP体两部分,消息体是可选的,而消息头是必须的... 阅读全文
posted @ 2015-08-30 11:21 balingybj 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 1. HTTP简介HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先... 阅读全文
posted @ 2015-08-30 11:17 balingybj 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 无论父类与子类的析构函数是否是virutal,子类的析构函数都会调用父类的析构函数 调用构造函数是与构造函数顺序相反,先子类后基类,否则如果基类先析构,子类的有些资源已经不存在了,会出错。 在C++中,类的成员变量的初始化顺序只与变量在类中的声明顺序有关,因为成员变量的初始化次序跟变量在内存中的次序 阅读全文
posted @ 2015-08-29 16:20 balingybj 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 昨天去面试一家公司,面试题中有一个题,自己没弄清楚,先记录如下:class D{public: void printA() { coutprintA();d->printB();输出结果是?当时想的是对象d直接初始化为NULL,非虚的成员函数没有地址,应该找不到,而virt... 阅读全文
posted @ 2015-08-27 21:53 balingybj 阅读(1290) 评论(0) 推荐(0) 编辑
摘要: 内联函数相对于宏的区别和优点:宏是在预处理时进行的机械替换,内联是在编译时进行的。内联函数是真正的函数,只是在调用时,没有调用开销,像宏一样进行展开。内联函数会进行参数匹配检查,相对于带参数的宏有很好的优点,避免了处理宏的一些问题。宏无法进行调试。inline1、产生背景写函数的好处:第一,它使程序... 阅读全文
posted @ 2015-08-27 21:43 balingybj 阅读(682) 评论(0) 推荐(0) 编辑