#ifndef TEST_H_
#define TEST_H_
namespace ThinkingInCppDemoLib // 这个就是一个名称空间,ThinkingInCppDemoLib这个是名称空间的名字,
// 在这里使用名称空间,为了避免在其它的人编写时使用相同的类 class f 类,
{
class t // 这个类在名称空间里,这个地方也可以是全局函数\变量名称、全局类名、全局结构名\枚举名\联合名。
{
private:
int c;
public:
t(int cc);
~t();
};
t::t(int cc) : c(cc)
{
std::cout << "xiao cui ai ni. " << std::endl;
}
t::~t()
{
}
}
#endif
# include <iostream>
# include "test.h"
using namespace std;
//using namespace ThinkingInCppDemoLib; //这个是using 指令,将ThinkingInCppDemoLib 名称空间里的所有的都导入到此文件里,
//using ThinkingInCppDemoLib::t; // 这个是using 声明,只是将f 类导入到此文件里边,
//namespace BST = ThinkingInCppDemoLib; // 这个就是讲ThinkingInCppDemoLib 起了一个别名,在使用ThinkingInCppDemoLib 就可以用BST 代替,
int m = 0; // 这个是外部的,等于 extern int m = 0,外部的这里定义的是一个全局变量,所有的源代码都可以使用,在使用的时候要声明,
static int n; // 静态的在当前的文件里边可以使用,
int mm = 90; // 这个是全局名称空间,没有名称,用四个点就可以调用用在主函数中,
void f() // 这个是外部的,是一个全局的,
{
static int a;
}
static void g()
{
}
int main()
{
ThinkingInCppDemoLib::t b(6); // 这个就是完全限定名称,
int mm = 9;
cout << ++mm << endl; // 输出是10,
cout << ::mm << endl; // 输出的是90,这个就是调用全局名称空间里的mm = 90.
return 0;
}