20140808 const和define区别 内联函数(inline) 栈和堆的地址分配 栈帧

一、const和define区别数组

const有数据类型(不能改变的变量),define只是简单的字符串替换,没有数据类型。安全

C++程序用const彻底取代 define。函数

const还能够类成员函数为不能改变成员变量的恒态函数。(mutable int a除外).net

例子:3d

const int buffsize=10;对象

int buf[buffsize];blog

在C编译器中编译出错,由于继承

二、string类的使用字符串

string string[3]={“aa”,“bb”,“cc”};//定义了一个包含三个string对象的数组。get

三、内联函数(inline)

inline是指嵌入代码,在调用内联函数的地方直接嵌入代码,不须要中断调用,因此速度更快。和C中的#define相比,有类型检查,更加可靠安全。

何时使用:

一个函数不断被重复调用,函数的代码量少。如swap函数

inline void swap(int a,int b){a=a^b;b=a^b;a=a^b;}

四、栈和堆的地址分配

int a=1;
int *p=&a;
int &Ra=a;
cout<<&a”<<&a<<endl;
cout<<&p<<endl;
cout<<&Ra<<endl;

按变量定义的顺序,在栈上的地址分配的由高地址向低地址分配

image

五、虚继承

2f738bd4b31c8701e5684ad2257f9e2f0708ff2c

六、函数调用也叫作过程,须要理解栈帧

http://blog.csdn.net/yxysdcl/article/details/5569351(栈帧讲得很是好)

相关文章
相关标签/搜索