快捷搜索:  
内联函数详解

内联函数详解

什么是内联性和外联函数 类的成员函数可以分为内联函数和外联函数。内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。而说明在类体内,定义在类体外的成员函数叫外联函数。外联函数的函数体在类的实现部分。 内联函数在调用时不是像一般的函数那样要转去执行被调用函数的函数体,执行完成后再转回调用函数中,执行其后语句,而是在调用函数处用内联函数体的代码来替换,这样将会节省调用开销,提高运行速度。 内联函数与前面讲过的带参数的宏定义进行一下比较,它们的代码效率是一样的,但是内联函数要优于宏定义,因为内...

BOOL,int,float,指针变量  与“零值”比较的if语句

BOOL,int,float,指针变量 与“零值”比较的if语句

分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var) 解答: BOOL型变量:if(!var) int型变量: if(var==0) float型变量: const float EPSINON = 0.00001; if ((x = - EPSINON) (x = EPSINON) 指针变量: if(var==NULL) 剖析: 考查对0值判断的“内功”,BOOL型变量的0判断完全可以写成if(var==0),而int型变量也可以写成if(!var),指针变...

C++中const用法详解

C++中const用法详解

面向对象是C++的重要特性。 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重 const 1. 限定符声明变量只能被读 const int i=5; int j=0; …… i=j; //非法,导致编译错误 j=i; //合法 2. 必须初始化 const int i=5; //合法 const int j; //非法,导致编译错误 3. 在另一连接文件中引用const常量 extern const int i; //合...

C++中typename关键字的使用方法和注意事项

C++中typename关键字的使用方法和注意事项

1, 什么地方使用?用在模板定义里,标明其后的模板参数是类型参数。 例如 templatetypename T, typename Y T foo(const T t, const Y y){//....}; templacetypename T class CTest { private: T t; public: //... } 其实,这里最常用的是使用关键字class...

总结了一些常见的排序算法,面试必备啊!

总结了一些常见的排序算法,面试必备啊!

名称 复杂度 说明 备注 冒泡排序 Bubble Sort O(N*N) 将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮 插入排序 Insertion sort O(N*N) 逐一取出元素,在已经排序的元素序列中从后向前扫描,放到适当的位置 起初,已经排序的元素序列为空 选择排序 O(N*N) 首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此递归。 快速排序 Quick Sort O(n *log2(...

在C++中实现“属性  (Property)”

在C++中实现“属性 (Property)”

摘要: 本文介绍了在C++中实现“属性 (Property)”的方法,“属性”是我们在C#(或其它一些语言)中常常能用到的一种特性。这里介绍的实现方法使用的是标准的C++,没有用任何其它的语言扩展。而大部分的库或是编译器为了实现“属性”,往往对C++作一些扩展,就像我们在托管的C++或是C++ Builder中看到的那样,也有的是使用普通的set和get方法,这些都不能算是真正的“属性”。 正文: 首先,让我们来看看什么是“属性”。“属性”在外观上看起来就像类中的一个普通成员变量(或者称为是“字段”),...

C++学习重点分析

C++学习重点分析

一、#include “filename.h”和#include 的区别 #include “filename.h”是指编译器将从当前工作目录上开始查找此文件 #include 是指编译器将从标准库目录中开始查找此文件 二、头文件的作用 加强安全检测 通过头文件可能方便地调用库功能,而不必关心其实现方式 三、* , 修饰符的位置 对于*和修饰符,为了避免误解,最好将修饰符紧靠变量名 四、if语句 不要将布尔变量与任何值进行比较,那会很容易出错的。 整形变量必须要有类型相同的值进行比较 浮点变量最好少比点...

CString/string/char  *比较详解

CString/string/char *比较详解

关键点:CStirng主要用于MFC的编写,而string属于STL,两者都是符合标准C++的,但是在非 windows平台或者说VC上还是用string吧。另外还有一个string.h这是传统C++才有的~ (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC...

C++和Java      我们还是比较下

C++和Java 我们还是比较下

C++和Java之间仍存在一些显著的差异。可以这样说,这些差异代表着技术的极大进步。一旦我们弄清楚了这些差异,就会理解为什么说Java是一种优秀的程序设计语言。本附录将引导大家认识用于区分Java和C++的一些重要特征。 (1) 最大的障碍在于速度:解释过的Java要比C的执行速度慢上约20倍。无论什么都不能阻止Java语言进行编译。写作本书的时候,刚刚出现了一些准实时编译器,它们能显著加快速度。当然,我们完全有理由认为会出现适用于更多流行平台的纯固有编译器,但假若没有那些编译器,由于速度的限制,必须有...

C++  逗号操作符二三事

C++ 逗号操作符二三事

逗号操作符?C++里有逗号操作符么? 不少C++ newbie都会问到这问题,大家对+-*/自然是认识的了,对其他的%!|之类的也不觉得陌生,但是逗号操作符?可能有一半的人会说不清楚它到底是干啥的。 其实,我们是经常会用到逗号操作符的,但是并不是所有代码里出现的逗号都是逗号操作符。 让我们先从一个类的示例代码开始: 1: 2: class mynum 3: { 4: public: 5: mynum(double ndb,...) 6: { 7: //init with arguments 8: } 9...

C++必知必会(一)数据抽象

C++必知必会(一)数据抽象

“类型”是一组操作,“抽象数据类型”则是一组具有某种实现的操作。当我们在某个问题的范畴中识别对象时,首先考虑的问题是“可以用这个对象来做什么”而不是“这个对象是如何实现的”。因此,假如某个问题的自然描述涉及到雇员、合同和薪水记录,那么用来处理该问题的编程语言就该当包括Employee、Contract和PayrollRecord类型。这样就答应在问题范畴和处理方案范畴之间进行双向、高效地转换,用这种方式编写的软件才能尽量避免产生“转换噪音”,从而达到更简洁、更准确。 在C++这样的通用编程语言中,不会有...

C++求n的价乘

C++求n的价乘

#include iostream.h int num(int zw) { if(zw==1)return 1; else return zw*num(zw-1); } int numb(int zwb) { int s=0; for(int i=zwb;i;i--) { s=s+num(i); } return s; } void main() { coutnumb(4)endl; }...