哈哈哈,终于想起来我的CDSN的密码了(才不是为这些天没更新找借口,╭(╯^╰)╮)
一、作用域运算符 ::
就是后面那两个冒号哈,对的,没错,就叫做作用域运算符。
这俩个冒号就厉害嘞,他可以把局部变量变成全局变量。
咳咳~,官方解释就是:如果有两个同名变量,一个是全局的,另一个是局部的,那么局部变量在作用域内具有较高的优先权,它将屏蔽全局变量。
话不多说,上例子:
全局变量和局部变量同名:
#include <iostream>
using namespace std;
int avar=10; //全局变量
int main ()
{
int avar; //局部变量
avar=25;
cout<<"avar is "<<avar<<endl;
return 0;
}
在VC中输出结果如下:
avar is 25
Press any key to continue
由此可见,是main函数里面的局部变量的值输出了。所以局部变量的优先级大于全局变量。
那么,我要使用作用域运算符,该如何用呢?
我们来看下面的例子:
#include<iostream>
using namespace std;
int avar;
int main()
{
int avar;
avar=11;
::avar=10;
cout<<"局部变量是"<<avar<<endl;
cout<<"全局变量是"<<::avar<<endl;
return 0;
}
VC运行结果是:
局部变量是11
全局变量是10
Press any key to continue
二、强制类型转换
就是数据类型之间的转换。
在C中,一般是这个样子的:
int i=10;
double x=(doble)i;
C++ 作为扩充,当然支持C中的表达方式啦,不过C++ 中,又多了一个形式:
C++中相比C,就把位置换了一下,看起来像函数调用那么回事:
int 1=10;
double x=double(i);
不过,在C ++ 中,推荐后者哦!
好了,C++ 的基础部分终于码完了,接下来的一期就是开始进入有C++ 风格的代码了。