C++学习之路 day2

Day2知识点:

1.  C语言中malloc free是函数,C++中new free是关键字。

 

2.  宏函数,一般函数,内联函数的区别与联系。

a)  宏函数:内嵌到调用代码中去,避免了函数调用的开销,代码段空间增大,但是由于宏函数的处理发生在预 处理阶段,没有类型检查语法检测,如:

#define sqr(x) ((x)*(x))

b)  一般函数:优点:高度抽象,避免重复开发,类型检查;缺点: 压栈与出栈,带来开销。

c)  内联函数:介于宏函数与一般函数之间,避免入栈与出栈的开销,但会增加代码段空间。

 

3.   

a)  static_cast:当双方中至少一方可以隐式转换时使用。在一个方向上可以作隐式转换,在另外一个方向上就可以作静态转换

int *p; void *q;
p = static_cast<int*>(q);	//int*类型可以转化为void*,但是void*类型不能直接转化成int*类型


b)  reinterpret_cast: 在双方向上都不可以隐式类型转换的(如char*p与int *q),则需要重解释类型转换:

int x = 0x12345648;
char *p = reinterpret_cast<char*>(&x);


c)   const_cast:const的值是不可改变的(若可以改变则是未定义的),const_cast只能用于指针与引用:

const_int a = 19;
int &ra = const_cast<int&>(a);


4.  宏,在预处理阶段发生了替换,如:

#define N 200;
const int a = 200; //在编译阶段发生替换


 

5.  命名空间的定义:对全局空间的再度划分

namespace 空间名{int x;int y};
using namespace 空间名;	//使用全部命名空间
using 空间名::x;		//使用命名空间中的一部分


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值