目录
dynamic_cast(转换失败的时候会返回null(在C++中他就是个0))
命名空间
昨天睡觉时,突然想起来命名空间还没有说.其实命名空间就是为了防止命名冲突.
经常是用的 using namespace std;
using 使用 namesapce 名空间 std(standard) 标准的缩写
使用标准命名空间,C++所有标准的东西都在这里面.
标准命名空间
#include <iostream>
#if 0
using namespace std;
int main()
{
//使用using namespace std;
cout << "hello world" << endl;
return 0;
}
#endif
#if 0
int main()
{
//bu使用using namespace std 可以std::指定 :: 这个叫作用域运算符
std::cout << "hello world" << std::endl;
return 0;
}
#endif
//也可以这样使用
using std::endl;
using std::cout;
int main()
{
//使用using namespace std;
cout << "hello world" << endl;
return 0;
}
自定义命名空间
#include <iostream>
using namespace std;
namespace one_namespace
{
void func()
{
cout << "one_namespace" << endl;
}
int num = 10;
}
namespace two_namespace
{
void func()
{
cout << "two_namespace" << endl;
}
int num = 20;
}
#if 0
int main()
{
cout << one_namespace::num << endl; //10
one_namespace::func(); //cout << "one_namespace" << endl;
cout << two_namespace::num << endl; //20
two_namespace::func(); //cout << "two_namespace" << endl;
return 0;
}
#endif
#if 0
//也可以如标准命名空间那样使用
using one_namespace::func;
using one_namespace::num;
int main()
{
cout << num << endl; //10
func(); //cout << "one_namespace" << endl;
cout << two_namespace::num << endl; //20
two_namespace::func(); //cout << "two_namespace" << endl;
return 0;
}
#endif
using namespace two_namespace;
int main()
{
cout <<